实验 gazebo_ros_control
【摘要】 用源码编译生成插件替换默认插件libgazebo_ros_control.so文件在哪同样在ros的系统包下 与 libdefault_robot_hw_sim.so文件一样把这个文件删了会怎样?不删正常情况下可以启动右键删除该文件不行在opt文件夹下,没有权限,不能删。同理 libdefault_robot_hw_sim.so 文件也一样不删了,进行下一项。 libdefault_ro...
用源码编译生成插件替换默认插件
libgazebo_ros_control.so文件在哪
同样在ros的系统包下 与 libdefault_robot_hw_sim.so文件一样
把这个文件删了会怎样?
不删正常情况下可以启动
右键删除该文件不行
在opt文件夹下,没有权限,不能删。
同理 libdefault_robot_hw_sim.so 文件也一样
不删了,进行下一项。
libdefault_robot_hw_sim.so 插件源码生成自己的插件然后加载
将源码 生成了自己的插件
仅替换源码是不行的,因为在 调用的时候, 因为命名空间可类名一样 导致加载的分不开
包含头文件时总说找不到
这块弄好需要
我 是 include 不知道怎么有注释
把robotSimType 便签换成自己的
gazebo_ros_control依然启动成功了,但是不提示 其中加载了 robotSimType 的哪个
确定启动了
gazebo_ros_control_jone_text/DefaultRobotHWSimJoneText
在cpp中加入一个打印信息
在
bool DefaultRobotHWSimJoneText::initSim
函数下加入
ROS_INFO(" here here here ");
成功打印 说明 启动了自己写的插件
测试下插件是不是可用
进行了控制 ,同样 云台进行了转动
打印joint的状态
在DefaultRobotHWSimJoneText::readSim(ros::Time time, ros::Duration period)函数中
把joint 的状态打印出来
if(j==0)
{
ROS_INFO_STREAM_THROTTLE(0.5,"[j]: = " <<j);
ROS_INFO_STREAM_THROTTLE(0.5,"joint_names_[0]: = " <<joint_names_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_position_[0]: = " <<joint_position_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_velocity_[0]: = " <<joint_velocity_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_effort_[0]: = " <<joint_effort_[j]);//打印 要发布的信息
}
if(j==1)
{
ROS_INFO_STREAM_THROTTLE(0.5,"[j]: = " <<j);
ROS_INFO_STREAM_THROTTLE(0.5,"joint_names_[1]: = " <<joint_names_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_position_[1]: = " <<joint_position_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_velocity_[1]: = " <<joint_velocity_[j]);//打印 要发布的信息
ROS_INFO_STREAM_THROTTLE(0.5,"joint_effort_[1]: = " <<joint_effort_[j]);//打印 要发布的信息
}
用节点发布joint控制命令
然后调用节点发布joint控制命令
相应的joint 的position velocity effort 有变化
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)