- Notifications
You must be signed in to change notification settings - Fork0
Home
Documentation migration is currently a WIP. Below you'll find some general information for those who want to jump right into working with MacBot such as setting up a distributed ROS system and information regarding the TF tree of the robot.
General Information
Mapping and Navigation
We'll be working with ROS as a distributed system. This means the MacBot's Jetson Nano be themaster
and will be runningroscore
. When SSHing into the MacBot Jetson, make sure to use the-X
flag. This will enable X11 forwarding. This will allow us to bypass file permissions on the remote host (for the user's X authorization database). Commands are sent via encrypted SSH from remote to local and can be displayed. This will be very important for when we need to publish 2D pose estimates and navigation goals on RViz.
ssh -X macbot@192.168.1.XX
A reminder to properly source your workspace:
. ~/catkin_ws/devel/setup.bash
To set up distributed ROS across multiple machines, we'll need to have one master. All of the nodes on our distributed system must be configured to use the same master device. The quickest way to get this started is exporting the configuration in our.bashrc
. Replace theXX
andYY
IP address with whatever values you have.
MacBot's Jetson Nano (master device)
export ROS_IP=192.168.1.XXexport ROS_HOSTNAME=192.168.1.XXexport ROS_MASTER_URI=http://192.168.1.XX:11311echo "ROS_IP $ROS_IP"echo "ROS_HOSTNAME $ROS_HOSTNAME"echo "ROS_MASTER_URI $ROS_MASTER_URI"
Client
export ROS_IP=192.168.1.YYexport ROS_HOSTNAME=192.168.1.YYexport ROS_MASTER_URI=http://192.168.1.XX:11311echo "ROS_IP $ROS_IP"echo "ROS_HOSTNAME $ROS_HOSTNAME"echo "ROS_MASTER_URI $ROS_MASTER_URI"
The TF tree for MacBot is shown below for a typical navigation / path planning setup. APDF of the tree is also available. While most static links in the tree are defined by therobot_state_publisher
, there are a few exceptions.
map
→odom
: Published by theamcl
node for robot localization.odom
→base_link
: Published by thelaser_scan_matcher
node for pose estimation.base_link
→right_wheel
: Published by thetf_broadcaster.py
node for visual wheel rotations (no odometry).base_link
→left_wheel
: Published by thetf_broadcaster.py
node for visual wheel rotations (no odometry).