Navifra ROS
1. Introduction
This manual provides guidance on the simple use of the autonomous driving system integrated into Moby.
Navicore is the software developed by Navifra, a company specializing in autonomous driving solutions. It offers Moby’s driving-related Web UI and ROS capabilities.
Navicore comes pre-installed on Moby, eliminating the need for additional installation. Even users without prior knowledge of autonomous driving can use it effortlessly.
ROS topics can be utilized like APIs by leveraging packages such as rospy and roscpp.
We recommend using it in conjunction with the Web UI. You can request the Web UI user manual from Navifra at the address below:
2. Setup
Navicore is pre-installed on the Navifra PC, which is included in the basic configuration of Moby. However, since there is a possibility of modifying existing settings, we recommend using a separate PC.
You can connect to Moby’s embedded driving PC as the ROS Master from a ROS Noetic environment PC on the same network to perform driving operations and read data.
The ROS Noetic package can be installed on Ubuntu 20.04. Follow the guide in this link for installation instructions.
Once the Noetic package installation is complete, you can configure the ROS connection by executing the following commands in the terminal:
export ROS_MASTER_URI=http://192.168.214.21:11311
export ROS_HOSTNAME=localhost
echo "export ROS_MASTER_URI=http://192.168.214.21:11311" >> ~/.bashrc
echo "export ROS_HOSTNAME=localhost" >> ~/.bashrc
3. ROS Topic List
Below is a list of commonly used ROS topics. Users can issue commands or read data by publishing to or subscribing to each topic. Most topics in the list are used to issue driving commands or read current status data. Therefore, it is recommended to configure mapping, driving nodes (target destination points), and links (paths between driving nodes) using the Web UI before proceeding. You can check more topics by entering the rostopic list
command in the terminal.
Topic Name | Pub/Sub | Message Type | description |
---|---|---|---|
/scan_cloud |
Subscribe | sensor_msgs/PointCloud | merged lidar data as pointcloud(z=0) |
/scan_merge |
Subscribe | sensor_msgs/LaserScan | merged lidar data as laserscan |
/localization/robot_pos |
Subscribe | geometry_msgs /PoseWithCovarianceStamped |
current robot posepose.pose.position , pose.pose.orientation |
/navi/current_node |
Subscribe | std_msgs/String | data : current node name |
/navi/next_node |
Subscribe | std_msgs/String | data : next node name |
/navi/goal_node |
Subscribe | std_msgs/String | data : goal node name |
/navi/s_status |
Subscribe | std_msgs/String | current robot status“loading” : Initializing“idle” : Waif for command“running” : Navigating“pause” : Pausing |
/navi/on_path |
Subscribe | std_msgs/Bool | check if robot is located on path true : on path, false : not on path |
/navi/path_progress |
Subscribe | std_msgs/Float32 | progress of navigated path : 0 ~ 100 |
/navi/cur_pos |
Subscribe | std_msgs/Float32MultiArray | current robot pose[x[m], y[m], yaw[rad]] |
/navi/goal_pos |
Subscribe | std_msgs/Float32MultiArray | goal node pose[x[m], y[m], yaw[rad]] |
/cmd_vel |
Publish | geometry_msgs/Twist | manual drive commandlinear.x, linear.y, angular.z |
/navi/goal_name |
Publish | std_msgs/String | set navigation goaldata : target node name |
/navifra/cmd |
Publish | std_msgs/String | command for navigationdata :"cancel", "pause", "resume" |
/initialpose |
Publish | geometry_msgs /PoseWithCovarianceStamped |
set robot initial posepose.pose.position , pose.pose.orientation |
4. Local ROS Topic List
Navifra provides topics that utilize not only standard messages but also custom messages. These topics are named with the prefix /navifra
. If a separate message file is not provided, they are only accessible within the Navifra PC. Below is a list of key topics that use custom messages.
Topic Name | Pub/Sub | Message Type | description |
---|---|---|---|
/navifra/info |
Subscribe | core_msgs/NavicoreStatus |
n_status :“loading” : 99, “idle” : 100, “running” : 101, “pause” : 102s_status :“loading”, “idle”, “running”, “pause”s_next_node :string, node names_current_node :string, node names_goal_node :string, node namef_path_progress f_goal_pos_x_m f_goal_pos_y_m f_goal_pos_deg f_robot_pos_x_m f_robot_pos_y_m f_robot_pos_deg f_robot_current_linear_vel_x f_robot_current_angular_vel_w n_on_path :0:not on path, 1:on path
|
/navifra/goal_id |
Publish | core_msgs/Goal | set navigation goalname[str]: target node name |