在RViz观看七自由度的手臂

来源:互联网 发布:大烟雾做丝数据 编辑:程序博客网 时间:2024/04/28 22:19

运行如下命令:

roslaunch mastering_ros_robot_description_pkg view_arm.launch

调节右侧滑块控制机械手关节运动
这里写图片描述

sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-msgs ros-indigo-gazebo-plugins ros-indigo-gazebo-ros-controlgedit seven_dof_arm_world.launch

在mastering_ros_robot_description_pkg的包中的launch文件夹下创建seven_dof_arm_world.launch写入文件

<launch><!-- these are the arguments you can pass this launch file, for example paused:=true --><arg name="paused" default="false"/><arg name="use_sim_time" default="true"/> <arg name="gui" default="true"/><arg name="headless" default="false"/> <arg name="debug" default="false"/><!-- We resume the logic in empty_world.launch --><include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="debug" value="$(arg debug)" /><arg name="gui" value="$(arg gui)" /><arg name="paused" value="$(arg paused)"/><arg name="use_sim_time" value="$(arg use_sim_time)"/> <arg name="headless" value="$(arg headless)"/></include><!-- Load the URDF into the ROS Parameter Server --><param name="robot_description" command="$(find xacro)/xacro.py '$(find mastering_ros_robot_description_pkg)/urdf/seven_dof_arm.xacro'" /><!-- Run a python script to the send a service call to gazebo_ros to spawn a URDF robot --><node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"args="-urdf -model seven_dof_arm -param robot_description"/> </launch>
roslaunch seven_dof_arm_gazebo seven_dof_arm_world.launch

这里写图片描述
以下命令查看模拟传感器插件产生的主题:

rostopic list

用image_view工具查看三维图像依次为RGB raw image、IR raw image(红外线图像)、depth image:

rosrun image_view image_view image:=/rgbd_camera/rgb/image_rawrosrun image_view image_view image:=/rgbd_camera/ir/image_rawrosrun image_view image_view image:=/rgbd_camera/depth/image_raw

这里写图片描述

我们也可以在RViz看了该传感器的点云数据。
使用下面的命令启动RViz:

rosrun rviz rviz -f /rgbd_camera_optical_frame

这里写图片描述

mkdir -p configcd configgedit seven_dof_arm_gazebo_control.yaml

yaml文件写入:

seven_dof_arm:•Publish all joint states -----------------------------------joint_state_controller:type: joint_state_controller/JointStateControllerpublish_rate: 50•Position Controllers ---------------------------------------joint1_position_controller:type: position_controllers/JointPositionControllerjoint: shoulder_pan_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint2_position_controller:type: position_controllers/JointPositionControllerjoint: shoulder_pitch_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint3_position_controller:type: position_controllers/JointPositionControllerjoint: elbow_roll_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint4_position_controller:type: position_controllers/JointPositionControllerjoint: elbow_pitch_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint5_position_controller:type: position_controllers/JointPositionControllerjoint: wrist_roll_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint6_position_controller:type: position_controllers/JointPositionControllerjoint: wrist_pitch_jointpid: {p: 100.0, i: 0.01, d: 10.0} joint7_position_controller:type: position_controllers/JointPositionControllerjoint: gripper_roll_jointpid: {p: 100.0, i: 0.01, d: 10.0}

在launch文件下建立seven_dof_arm_gazebo_control.launch文件并写入:

<launch><!-- Launch Gazebo  --><include file="$(find seven_dof_arm_gazebo)/launch/seven_dof_arm_world.launch" /><!-- Load joint controller configurations from YAML file to parameter server --><rosparam file="$(find seven_dof_arm_gazebo)/config/seven_dof_arm_ gazebo_control.yaml" command="load"/><!-- load the controllers --><node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"output="screen" ns="/seven_dof_arm" args="joint_state_controller joint1_position_controllerjoint2_position_controller joint3_position_controller joint4_position_controller joint5_position_controller joint6_position_controller joint7_position_controller"/><!-- convert joint states to TF transforms for rviz, etc --> <node name="robot_state_publisher" pkg="robot_state_publisher"type="robot_state_publisher" respawn="false" output="screen"><remap from="/joint_states" to="/seven_dof_arm/joint_states" /> </node></launch>

运行:

roslaunch seven_dof_arm_gazebo seven_dof_arm_gazebo_control.launchroslaunch mastering_ros_robot_description_pkg seven_dof_arm_gazebo_control.launch
rostopic listrostopic pub /seven_dof_arm/joint4_position_controller/command std_msgs/Float64 1.0 rostopic echo /seven_dof_arm/joint_states

这里写图片描述

0 0