-
Notifications
You must be signed in to change notification settings - Fork 0
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 the master
and will be running roscore
. 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 the XX
and YY
IP address with whatever values you have.
MacBot's Jetson Nano (master device)
export ROS_IP=192.168.1.XX
export ROS_HOSTNAME=192.168.1.XX
export ROS_MASTER_URI=http://192.168.1.XX:11311
echo "ROS_IP $ROS_IP"
echo "ROS_HOSTNAME $ROS_HOSTNAME"
echo "ROS_MASTER_URI $ROS_MASTER_URI"
Client
export ROS_IP=192.168.1.YY
export ROS_HOSTNAME=192.168.1.YY
export ROS_MASTER_URI=http://192.168.1.XX:11311
echo "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. A PDF of the tree is also available. While most static links in the tree are defined by the robot_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).