ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

How to change ndt_pose to current_pose in AutowareAuto,

asked 2021-05-19 07:54:39 -0500

keita1523 gravatar image

updated 2021-05-26 00:38:19 -0500

I want to run a series of events for self-driving with AutowareAuto. A series of events means obtaining point cloud with Lidar, then estimating the current pose, and then following the path. To realize this, I think that it is needed to launch the p2d_ndt_localizer_node node and pure_pursuit_controller node. The p2d_ndt_localizer_node node publishes the ndt_pose topic. On the other hand, the pure_pursuit_controller node subscribes the current_pose topic which is called as the vehicle_kinematic_state. The types of ndt_pose and current_pose are difference. I was confused how to connect the p2d_ndt_localizer_node node to the pure_pursuit_controller node. In other words, I don't know which node will convert the topic from the ndt_pose topic to the current_pose topic.

The demo files (launch files) launch nodes for LGSVL simulator. The command ros2 launch test_trajectory_following trajectory_recording_pure_pursuit.launch.py launces the pure_pursuit_controller node, which receives the current_pose published by LGSVL simulator.

The command ros2 launch autoware_demos autoware_adademy_ndt_demo_no_odometry.launch.py launces the p2d_ndt_localizer_node, which only publishes the ndt_pose to LGSVL simulator.

I don't want to run with LGSVL simulator. I want to run a series of events of AutowareAuto. How to transform the ndt_pose topic to the current_pose topic? How do I make the pure_pursuit_controller receive the ndt_pose?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-05-30 16:52:05 -0500

Josh Whitley gravatar image

The current state of Autoware.Auto requires that a VehicleKinematicState be published to current_pose. This is usually generated by a Vehicle Interface node (like lgsvl_interface). Your vehicle will require a Vehicle Interface node in order to translate Autoware-specific messages into messages for your drive-by-wire's ROS2 driver and vice versa. This is the node that should produce the VehicleKinematicState message which gets passed to current_pose.

Note: This is not the goal for the long-term architecture. During the Cargo Delivery ODD development phase (currently ongoing) we plan to have the state estimator (an EKF that comes after the NDT localizer and other localization sources) be the primary position estimation method for both MPC and Pure Pursuit with it also receiving things like wheel position from the Vehicle Interface on a separate topic. However, what I describe above is based on the 1.0.0 (AVP) architecture.

edit flag offensive delete link more

Comments

Thank you for answering. With Autoware1.0.0, I found that I have to make my Vehicle Interface node for my vehicle.

keita1523 gravatar image keita1523  ( 2021-06-03 20:31:11 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-05-19 07:54:39 -0500

Seen: 339 times

Last updated: May 30 '21