Skip to content

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 pose
pose.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 command
linear.x, linear.y, angular.z
/navi/goal_name Publish std_msgs/String set navigation goal
data: target node name
/navifra/cmd Publish std_msgs/String command for navigation
data:"cancel", "pause", "resume"
/initialpose Publish geometry_msgs
/PoseWithCovarianceStamped
set robot initial pose
pose.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” : 102
s_status:“loading”, “idle”, “running”, “pause”
s_next_node:string, node name
s_current_node:string, node name
s_goal_node:string, node name
f_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 goal
name[str]: target node name