微信里有人发做任务网站,湛江专业建站联系方式,wordpress评论框表情,网站开发仿站一、在工作空间下输入catkin_make进行编译 二、在工作空间中输入source ./devel/setup.bash后回车 三、机器人的运动控制在wpr_simulation中有一个例子程序#xff0c;在工作空间中输入#xff1a;
roslaunch wpr_simulation wpb_simple.launch后回车 四、就会启动一个仿真环…一、在工作空间下输入catkin_make进行编译 二、在工作空间中输入source ./devel/setup.bash后回车 三、机器人的运动控制在wpr_simulation中有一个例子程序在工作空间中输入
roslaunch wpr_simulation wpb_simple.launch后回车 四、就会启动一个仿真环境里面有一台ROS机器人前面放置了一个衣柜 五、再开一个终端输入rosrun wpr_simulation demo_vel_ctrl后回车运行运动控制示例程序 六、查看机器人仿真环境发现机器人在缓慢前进,这就是本文想要达到的控制效果。 七、我们的目标是构建一个速度控制节点将速度消息包发送到速度控制话题/cmd_vel中去这就是个典型的发布者节点 八、实现思路 九、打开一个终端输入
cd ~/catkin_ws1/src进入工作空间下的src目录 十、输入catkin_create_pkg vel_pkg roscpp rospy geometry_msgs创建软件包名字是vel_pkg依赖项是roscpp rospy和geometry_msgs这个geometry_msgs就是包含了速度消息类型的软件包 十一、输入code . 打开VScode 十二、在刚才创建的vel_pkg软件包的src文件夹里新建一个文件 十三、名字叫做vel_node.cpp这是一个节点代码文件 十四、在vel_node.cpp节点代码文件中写入如下代码
#include ros/ros.h //包含ros头文件
#include geometry_msgs/Twist.h //速度消息类型的头文件int main(int argc, char *argv[])
{ros::init(argc ,argv ,vel_node); //初始化节点ros::NodeHandle n;//定义发布对象ros::Publisher vel_pub n.advertisegeometry_msgs::Twist(/cmd_vel,10);//声明消息包geometry_msgs::Twist vel_msg;vel_msg.linear.x 0.1; //x轴方向前进速度vel_msg.linear.y 0; //y轴方向前进速度vel_msg.linear.z 0; //z轴方向前进速度vel_msg.angular.x 0; //绕x轴旋转速度vel_msg.angular.y 0; //绕y轴旋转速度vel_msg.angular.z 0; //绕z轴旋转速度ros::Rate r(30); //1秒循环30次while(ros::ok()){vel_pub.publish(vel_msg); //发布消息r.sleep();}return 0;}十五、打开软件包的CMakeLists.txt文件 十六、在文件末尾写上这三条编译规则 add_executable(vel_node src/vel_node.cpp)
add_dependencies(vel_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(vel_node${catkin_LIBRARIES}
)十七、Ctrls保存后CtrlShiftB进行编译编译成功 十八、打开一个终端在工作空间中输入source ./devel/setup.bash 十九、输入roslaunch wpr_simulation wpb_simple.launch将仿真环境运行起来 二十、再开另一个终端输入source ./devel/setup.bash 二十一、输入rosrun vel_pkg vel_node后回车 二十二、查看仿真环境发现机器人向前运动了起来 二十三、回到程序对程序进行修改使机器人绕Z轴进行旋转 二十四、按CtrlShiftB进行编译若出现许多项让你选择选择如下 二十五、编译成功 二十六、重新运行节点 二十七、机器人成功绕Z轴运动