Some basic readme for the autonomy components.

This commit is contained in:
indro 2024-02-15 13:36:05 -05:00
parent 2efb41c529
commit 2f7ab2edb1
1 changed files with 120 additions and 0 deletions

120
README.md
View File

@ -53,3 +53,123 @@ catkin config -DCMAKE_BUILD_TYPE=Release -DSIM=0 -DKIN=1
catkin build
````
## Autonomy Stack Notes:
1. Based on the robot launch its respective launch file from the rover_launch ros pkg.
### Optimus
```
roslaunch rover_launch rover_optimus.launch
```
### Jean rover
```
roslaunch rover_launch rover_agx.launch
```
### Spot
```
sudo route add -net 192.168.50.0/24 gw 192.168.1.3 # Route to the robot not setup yet, so do this to communicate with the robot.
roslaunch rover_launch spot.launch
```
2. Use a computer with valid ROS installation to act as a base station, on the base station launch the
base station launch script. Make sure you have a ps4 joystick paired or connected via USB for control.
**Note: Make sure the IP of the robot and your Ip are correct in the script**
Get to the location of the script
```
cd src/rover_launch/launch_scripts
```
### Optimus
```
bash bash_optimus.sh
```
### Jean rover
```
bash bash_tars.sh
```
### Spot
```
bash bash_spot.sh
```
Now one should be able to visualize the autonomy module components (pointcloud, images, tf, etc.),
and control the robot manualy based on the commands below.
### Local Planner Joystick Mapping
```
# Teleop configuration for PS4 joystick.
# Left thumb-stick up/down/left/right for forward/backward translation
# Right thumb-stick left/right for yaw
# Left shoulder button for obstacle enabled
# Right shoulder button for obstacle disabled
#
# L1 R1
# L2 R2
# _=====_ _=====_
# / _____ \ / _____ \
# +.-'_____'-.------------------------------.-'_____'-.+
# / | | '. S O N Y .' | _ | \
# / ___| /|\ |___ \ / ___| /_\ |___ \ (Y)
# / | | | ; ; | _ _ ||
# | | <--- ---> | | | ||_| (_)|| (X) (B)
# | |___ | ___| ; ; |___ ___||
# |\ | \|/ | / _ ____ _ \ | (X) | /| (A)
# | \ |_____| .','" "', (_PS_) ,'" "', '. |_____| .' |
# | '-.______.-' / \ / \ '-._____.-' |
# | | LJ |--------| RJ | |
# | /\ / \ /\ |
# | / '.___.' '.___.' \ |
# | / \ |
# \ / \ /
# \________/ \_________/
#
#
# BUTTON Function
# L1 Disable Obstacles
# L2 Not defined
# R1 Enable Obstacles
# R2 Not defined
# A Stop enable
# B Stop release
# X Manual control
# Y Autonomy control
#
# AXIS Value
# Left Horiz. Not defined
# Left Vert. Forward/Backward
# Right Horiz. Yaw
# Right Vert. Not defined
```
### Exploration planning
Start the exploration using the following commands by calling the rc cmd topic.
```
rosservice call /buzzcmd "{broadcast: false, command: 1, confirmation: 0, param1: 0.0, param2: 0.0, param3: 0.0,
param4: 0.0, param5: 0.0, param6: 0.0, param7: 0.0}"
```
The command can be replaced with any of the following to switch the state of the robot:
```
No_cmd = 0
Turnoff_cmd = 21
Explore_cmd = 1
Home_cmd = 2
Wp_cmd = 3
Find_object_cmd = 4 # Not Implemented
Sit_cmd = 5
Stand_cmd = 6
Dance_cmd = 7 # Not Implemented
all_robots_explore_cmd = 8 # Not Implemented
all_robots_home_cmd = 9 # Not Implemented
```
### Troubleshooting
1. Robot too close to Obstacles: If the robot gets too close the planner states clear the space around the robot. Ideally one can take back control and move the robot a little bit to resolve the warning and re-enable exploration.
2. Planner unable to find feasible path: Either try moving the robot, switch to turnedoff and back to explore, Move the robot a bit in the prefered direction and switch state -> turnedoff -> explore.
3. Robot connection bad: Restart the communication hub radios `radio0` from luci.
4. Rover driver not starting (ROSBuzz complaining Waiting for pose): check if the can bus is up and sending data using: `candump can0`, if not bring it up and using `bringup can` script from the driver package. Some robots have a service setup check sudo systemctl status bringupcan.service
5. Vector nav driver not starting: check the /dev/vectornav or /dev/USB0 is there based on the device.