第 19 節
Webots仿真平台
0瀏覽次數0訪問次數--跳出率--平均停留
這個平台用來測運動學很舒服。
可以SolidWorks轉URDF(ROS官方提供sw2udfo工具),再URDF轉Webots(webots官方提供urdf2webots工具)。
https://github.com/ros/solidworks\_urdf\_exporter
https://github.com/cyberbotics/urdf2webots
這樣的話,連電機甚至都給你選好了,你只需要寫運動學即可。
運動控制程序可以用C/C++、Python、Java等語言編寫,控制的時候只需要注意一下控制電機角度和速度的方式以及單位即可。
如果你給電機setPosition(INFINITY)的話,那麼這個電機將變成角度電機,而原本設置速度的函數將會變成設置角速度。
如果你沒給電機設置setPosition(INFINITY),那麼這個電機就是個速度電機。
角度單位是rad(存疑)
速度單位是rad/s(存疑)
for (int i = 0;i < 4;i++)
{
//舵电机仿真中默认顺时针为正
swerve_motor[i] = robot->getMotor("swerve_joint" + std::to_string(i));
//swerve_motor[i]->setPosition(INFINITY); // 注释掉:不启用速度控制
swerve_motor[i]->setPosition(0.0); // 初始角度为0
swerve_motor[i]->setVelocity(50.0); // 设置角速度
//驱动电机仿真中默认向后滚为正
drive_motor[i] = robot->getMotor("drive_joint" + std::to_string(i));
drive_motor[i]->setPosition(INFINITY); // 启用速度控制
drive_motor[i]->setVelocity(-0.0); // 初始速度为0
}