解決gazebo_ros_plugin中釋出的時間戳為系統時間的問題,改為Simulation Time
阿新 • • 發佈:2021-01-21
在學習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
這樣就可以重新編譯。