1. 程式人生 > 其它 >解決gazebo_ros_plugin中釋出的時間戳為系統時間的問題,改為Simulation Time

解決gazebo_ros_plugin中釋出的時間戳為系統時間的問題,改為Simulation Time

技術標籤:gazebo rosGazeboROSc++

在學習gazebo過程中發現很多gazebo的ros外掛釋出的時間戳都是系統時間。

因為系統模擬時需要按照一定倍率放慢,即使將rosparam /use_sim_time設定為true也無法控制外掛的時間。

我目前的的解決辦法只能是修改原始碼,下載原始碼後找到對應cpp檔案修改

比如對於GazeboRosPackages\src\gazebo_ros_pkgs\gazebo_plugins\src\gazebo_ros_joint_state_publisher.cpp

找到程式碼

ros::Time current_time = ros::Time::now();

修改為:

common::Timecurrent_simtime=this->world_->SimTime();//parent->GetWorld()->SimTime()
ros::Timecurrent_time(current_simtime.sec,current_simtime.nsec);

同理,對於gazebo_ros_diff_drive.cpp進行修改

返回到GazeboRosPackages\目錄

source devel/setup.bash
catkin_make

這樣就可以重新編譯。