ROS_By_Example笔记

网址记录

[TOC]

源码下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

cd ~/catkin_ws/src

git clone https://github.com/pirobot/rbx1.git

cd rbx1

git checkout indigo-devel

cd ~/catkin_ws

catkin_make

source ~/catkin_ws/devel/setup.bash

rospack profile

TurtleBot机器人底盘的模拟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

roscore

roslaunch rbx1_bringup fake_turtlebot.launch

rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz



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



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



rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'



rosrun rbx1_nav timed_out_and_back.py



rosrun rbx1_nav odom_out_and_back.py



rosrun rbx1_nav nav_square.py



#键盘或者手柄控制

sudo apt-get install ros-indigo-joystick-drivers \

ros-indigo-turtlebot-teleop



roslaunch rbx1_nav keyboard_teleop.launch



#虚拟摇杆

arbotix_gui



#Interactive Markers

sudo apt-get install ros-indigo-turtlebot-interactive-markers



roslaunch rbx1_bringup fake_turtlebot.launch



rosrun rviz rviz -d `rospack find rbx1_nav`/interactive_markers.rviz



roslaunch rbx1_nav interactive_markers.launch

SLAM Map Building with TurtleBot

Testing move_base in the ArbotiX Simulator(路径规划)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

roslaunch rbx1_bringup fake_turtlebot.launch

roslaunch rbx1_nav fake_move_base_blank_map.launch

rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz



rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped \

'{ header: { frame_id: "map" }, pose: { position: { x: 1.0, y: 0, z: 0 }, orientation: { x: 0, y: 0, z: 0, w: 1 } } }'



rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped \

'{ header: { frame_id: "map" }, pose: { position: { x: 0, y: 0, z: 0 }, orientation: { x: 0, y: 0, z: 0, w: 1 } } }'



#动态修改参数

rosrun rqt_reconfigure rqt_reconfigure
1
2
3
4
5
6
7
8
9
10

roslaunch rbx1_bringup fake_turtlebot.launch

roslaunch rbx1_nav fake_move_base_blank_map.launch

rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz



rosrun rbx1_nav move_base_square.py

Avoiding Simulated Obstacles(避障)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

roslaunch rbx1_bringup fake_turtlebot.launch

rosparam delete /move_base



roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch



rosrun rviz rviz -d `rospack find rbx1_nav`/nav_obstacles.rviz



rosrun rbx1_nav move_base_square.py
  • move_base for moving the robot to a goal pose within a given reference frame
    路径规划,移动机器人到指定帧的目标位置

  • gmapping for creating a map from laser scan data (or simulated laser data from a depth camera)
    从激光扫描数据建图

  • amcl for localization using an existing map
    用已有地图进行定位

1
2
3
4
5
6
7
8
9
10

roslaunch rbx1_bringup fake_turtlebot.launch



roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml



rosrun rviz rviz -d `rospack find rbx1_nav`/amcl.rviz

Fully Autonomous Navigation(随机位置自动漫游)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

roscore



rqt_console &



roslaunch rbx1_nav fake_nav_test.launch



rosrun rviz rviz -d `rospack find rbx1_nav`/amcl.rviz





所用节点:

/arbotix

/fake_localization

/map_server

/move_base

/nav_test

/robot_state_publisher

/rosout

/rviz_1476674751821829778

ROS的node和node之间的消息缓冲区管理由谁负责