Husky仿真环境配置

Husky仿真环境配置

  • 1. 下载安装
  • 2. 运行仿真

1. 下载安装

ROS官方:
Robots/Husky - ROS Wiki
Github官方:
Husky/Husky
Husky仿真环境配置_第1张图片

  • husky_base:与板载MCU通信的硬件驱动程序;
  • husky_bringup:调出启动文件和脚本;
  • husky_control:控件配置;
  • husky_description:机器人说明(URDF)
  • husky_gazebo:Gazebo插件定义和机器人URDF的扩展;
  • husky_msgs:消息定义 ;
  • husky_navigation:导航配置和演示;
  • husky_viz:可视化(rviz)配置和启动 。
mkdir Husky_ws/src
cd Husky_ws/src
git clone https://github.com/husky/husky
git clone https://github.com/husky/husky_simulator.git
git clone https://github.com/husky/husky_desktop.git
cd ..
catkin_make

按照官方安转时,会出现一些错误,还需安装以下ros包:

sudo apt-get install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control
sudo apt-get install ros-kinetic-multimaster-launch
sudo apt-get install ros-kinetic-lms1xx
rosdep install --from-path src --ignore-src  
catkin_make 
source devel/setup.bash

2. 运行仿真

roscore
cd Husky_ws
source devel/setup.bash

设置环境变量HUSKY_GAZEBO_DESCRIPTION:

export HUSKY_URDF_EXTRAS=$(rospack find husky_description)/urdf/empty.urdf

启动一个空的仿真环境:

roslaunch husky_gazebo husky_empty_world.launch

Husky仿真环境配置_第2张图片运行仿真环境后使用 rqt_graph 查看正在运行的节点和话题:
Husky仿真环境配置_第3张图片/gazebo 节点订阅了一个/cmd_vel 话题,查看话题信息:

rostopic info /husky_velocity_controller/cmd_vel

Husky仿真环境配置_第4张图片
可见此话题的消息类型为geometry_msgs/Twist,这是ROS中常用来发布运动命令的消息类型。控制器节点订阅/cmd话题,并将里边的运动命令(Twist消息)通过PID控制算法转换成电机控制信号。

查看geometry_msgs/Twist消息格式:

rosmsg show geometry_msgs/Twist

Husky仿真环境配置_第5张图片
linear表示线速度(单位:m/s),angular表示角速度(单位:rad/s)。
通过向/husky_velocity_controller/cmd_vel发送Twist消息来驱动小车,让它以4 m/s的线速度和0.5 rad/s的角速度运动:

rostopic pub -r 10 /husky_velocity_controller/cmd_vel geometry_msgs/Twist '{linear: {x: 4, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

还可以直接向/cmd_vel主题发消息来控制小车:

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 4, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

Husky仿真环境配置_第6张图片
这里边的 teleop_twist_joy 包用来实现将采集的手柄数据转换为Twist 指令,并将 Twist 指令发布到/cmd_vel 主题。
用于启动 teleop_twist_joy 下的launch文件:

roslaunch teleop_twist_joy teleop.launch

启动后打印的信息:
Husky仿真环境配置_第7张图片
NODES表示启动了joy_node和teleop_twist_joy两个节点,它们分别位于joy和teleop_twist_joy两个包中,上面是启动文件的参数信息
参数中的enable_button表示必须按下该按键(8号按键,对应手柄上的back键)才能控制,axis_angular和axis_linear分别表示轴的角速度和线速度的按钮(对应手柄上的左摇杆)。[Husky是一种轮式机器人,能够控制的只有x方向的速度(前向)和z方向的角速度(Yaw,偏航角速度)]

至此,基本的husky仿真环境已经配置完了,可以进行对husky的仿真编程实践。

你可能感兴趣的:(Husky仿真环境配置)