Skip to content
Eech Hsiao edited this page Jan 24, 2021 · 7 revisions

mbot_rviz

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.


Main Content

General Information

Mapping and Navigation

Distributed ROS and SSH

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"

Transform (TF) Tree Setup

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.

  • mapodom : Published by the amcl node for robot localization.
  • odombase_link : Published by the laser_scan_matcher node for pose estimation.
  • base_linkright_wheel : Published by the tf_broadcaster.py node for visual wheel rotations (no odometry).
  • base_linkleft_wheel : Published by the tf_broadcaster.py node for visual wheel rotations (no odometry).

mbot_rviz

Clone this wiki locally