安装虚拟机后打开系统镜像,设置虚拟机网络:
桥接模式
NAT模式:英文全称是“Network Address Translation”,中文意思是“网络地址转换”模式。
NET模式它是一个IETF标准,允许一个整体机构以一个公用IP地址...
选择NAT模式
cd /opt
ls
ros //显示ros,证明ros已安装。
ros网络与主机网络不在同一网段:
打开~/.bashrc文件,修改环境变量:
vim ~/.bashrc
esc :wq!
source ~/.bashrc
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
# 运行小乌龟:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
# ros指令集
# rospack
# rospack find [package_name]
rospack find roscpp
# 执行结果:YOUR_INSTALL_PATH/share/roscpp
# 如果ROS是从apt安装到Ubuntu系统中的,结果:
# /opt/ros/groovy/share/roscpp 或者 /opt/ros/melodic/share/roscpp
# roscd
# roscd [location_name[/subdir]]
roscd roscpp
# pwd: YOUR_INSTALL_PATH/share/roscpp ( /opt/ros/melodic/share/roscpp )
# 只会查找ROS_PACKAGE_PATH变量中包含的packages
roscd log
# 可以看到所有运行过的ROS程序
echo $ROS_PACKAGE_PATH
# 查看ROS_PACKAGE_PATH包含的信息(workspace)
# rosls
# rosls [locationname[/subdir]]
# 列出功能包下面包含的文件 ls
# catkin功能包
# 最简单的功能包组成如下所示:
• my_package/
• ----CMakeLists.txt
• ----package.xml
# catkin workspace里的功能包
# 推荐在catkin workspace下生成并编译catkin功能包,catkin功能包也可单独编译。
# catkin workspace的文件组织形式如下所示:
• workspace_folder/ -- WORKSPACE
• ----src/ -- SOURCE SPACE
• --------CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin
• --------package_1/
• ------------CMakeLists.txt -- CMakeLists.txt file for package_1
• ------------package.xml -- Package manifest for package_1
• ...
• --------package_n/
• ------------CMakeLists.txt -- CMakeLists.txt file for package_n
• ------------package.xml -- Package manifest for package_n
# cd到catkin workspace的src目录内(如:cd /catkin_ws/src)
# catkin_create_pkg <pkg_name> [depend1] [depend2] [depend3]
catkin_create_pkg [pkg_name] [std_msgs rospy roscpp ...]
# 查看功能包的 "直接(一级)依赖关系", 这些依赖功能包信息被保存在package.xml文件内
rospack depends1 pkg_name
# 间接依赖关系
# 依赖功能包本身也需要自己的依赖功能包,例如:rospy
rospack depends1 rospy
# rospack可以次序检测到所有嵌套的依赖功能包
rospack depends pkg_name
# 将ros加入到环境变量
source /opt/ros/melodic/setup.bash
# catkin_make
# In a catkin workspace
catkin_make
catkin_make install # (optionally)
# In a catkin workspace
catkin_make --source my_src
catkin_make install --source my_src # (optionally)
• 节点node:节点是一个可执行文件,可以与其它ROS节点进行通信;
• 消息msg:ROS中的一种数据类型,用于订阅或者发布一个话题;
• 话题topic:节点发布的一个话题,同时也可以接收一个话题;
• Master:ROS系统中的名称管理器,方便节点之间的查找;
• rosout:在ROS系统中相当于标准的stdout/stderr;
• roscore:Master+rosout+parameter server(parameter server会稍后介绍)
# 列出正在活动的节点
rosnode list
# /rosout
# 表明只有rosout节点正在运行,rosout始终都在运行,用来收集节点的调试输出信息等.
# 显示指定的节点的信息
rosnode info /rosout
# 如它将发布/rosout_agg等信息.
# rosrun [pkg_name] [node_name]
rosrun turtlesim turtlesim_node
# 通过映射参数(Remapping Argument)来改变节点的名字
rosrun turtlesim turtlesim_node __name:=my_turtle
# 用rosnode ping
rosnode ping my_turtle
# rosrun 单个节点
# roslaunch 多个节点
rostopic list
# 可以通过help参数获取有关rostopic的次级命令选项用法
$ rostopic -h
• rostopic bw display bandwidth used by topic
• rostopic echo [topic] print messages to screen
• rostopic hz display publishing rate of topic
• rostopic list print information about active topics
• rostopic pub publish data to topic
• rostopic type print topic type
rostopic list -h
• Options:
• -h, --help show this help message and exit
• -b BAGFILE, --bag=BAGFILE list topics in .bag file
• -v, --verbose list full details about each topic
• -p list only publishers
• -s list only subscribers
rostopic list -v
# 显示一个有关发布者及订阅者的详细列表及话题类型
# rostopic type [topic]
rostopic type /turtle1/command_velocity
# turtlesim/Velocity
rosmsg show turtlesim/Velocity
# float32 linear
# float32 angular
# rostopic pub 发布数据给当前存在的话题
# rostopic pub [topic] [msg_type] [args]
rostopic pub -1 /turtle1/command_velocity turtlesim/Velocity -- 2.0 1.8
# rostopic pub 表示发布消息到指定的话题;
# -1 表示只发送一次消息,然后就停发;
# /turtle1/command_velocity 指定要发送的话题;
# turtlesim/Velocity 指定发送给话题的消息类型;
# -- “--”告诉解析器后面的参数不是选项了(而是消息的具体数值),当数值为负数时是非常有必要的;
# 2.0 1.8 turtlesim/Velocity命令的两个浮点型的数据:线性速度和角速度
# 小乌龟已经停止运动,因为它需要靠1Hz的数据流不断驱动
# 使用rostopic pub –r 指令不断发送数据流:
rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8
# rostopic hz报告数据发布的频率,average rate, min, max, std dev, window.
# rostopic hz [topic]
rostopic type /turtle1/command_velocity | rosmsg show
# sudo apt-get install ros-<melodic>-rqt
# <melodic>为你的ROS的版本号
rosrun rqt_graph rqt_graph
# 绘制有关数据随着时间输出的曲线
rosrun rqt_plot rqt_plot /turtle1/pose/x:y
rosrun rqt_plot rqt_plot /turtle1/pose/theta
rosservice list print information about active services
rosservice call [service] [args] call the service with the provided args
rosservice type [service] print service type
rosservice find find services by service type
rosservice uri print service ROSRPC uri
rosparam set [param_name] set parameter
rosparam get [param_name] get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names