2f7ab2edb1 | ||
---|---|---|
Batman_setup_scripts | ||
.gitignore | ||
README.md | ||
batman-README.md | ||
packages_https_bs.rosinstall | ||
packages_https_cognifly.rosinstall | ||
packages_https_gazebo_quadrotor_l515.rosinstall | ||
packages_https_m300_batman.rosinstall | ||
packages_https_rover_optimus_slam_base.rosinstall | ||
packages_https_rover_slam_base.rosinstall | ||
packages_https_spiri_batman.rosinstall |
README.md
Clone the package
git clone http://git.mistlab.ca/vvaradharajan/mist_ws.git
Dependencies to install
sudo apt-get install python-catkin-tools python-wstool ros-kinetic-cmake-modules protobuf-compiler autoconf ros-kinetic-mavros* ros-kinetic-tf* \
ros-kinetic-rviz ros-kinetic-cv-bridge ros-kinetic-image-geometry ros-kinetic-pcl-* ros-kinetic-octomap* ros-kinetic-image-proc \
ros-kinetic-nmea-comms ffmpeg libusb-1.0-0-dev libsdl2-dev
Setting up the bat0 phy interface
PLEASE SET THIS UP BEFORE ATTEMPTING TO USE BATMAN NODE. Please refer to batman-README.md
DJI M300
This workspace includes relevant packages to run rosbuzz with the DJI OSDK on the M300 drones.
The workspace has been tested in Ubuntu 16.04 and ROS Kinetic.
Setup the workspace
cd mist_ws
wstool init
wstool merge packages_https_m300_batman.rosinstall
wstool update
Troubleshooting
- In case of permission error, make sure to follow the permission section to have read/write access for the uart communication.
Spiri
Setup the workspace
cd mist_ws
wstool init
wstool merge packages_https_spiri_batman.rosinstall
wstool update
DJI M100
Khepera IV
Spot
Build the whole workspace
catkin config -DCMAKE_BUILD_TYPE=Release -DSIM=0 -DKIN=1
catkin build
Autonomy Stack Notes:
- 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
- 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
- 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.
- 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.
- Robot connection bad: Restart the communication hub radios
radio0
from luci. - 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 usingbringup can
script from the driver package. Some robots have a service setup check sudo systemctl status bringupcan.service - Vector nav driver not starting: check the /dev/vectornav or /dev/USB0 is there based on the device.