概述
-
初始化catkin工作空间
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make #初始化工作空间 -
package的创建
$ catkin_create_pkg test_pkg roscpp rospy std_msgs
roscd [pacakge]
3.打开bashrc
gedit ~/.bashrc
添加内容
echo ‘’/home/xu/catkin_ws/install_isolated/setup.bash’’ >> ~/.bashrc
- 打开软件中心
gnome-software
5 .添加ros活动路径
先cd到工作目录
source ./devel/setup.bash
6.启动节点
rosrun pkg_name node_name
roslaunch pkg_name file_name.launch
- sleep方法
ros::Duration(0.5).sleep(); //用Duration对象的sleep方法休眠
ros::Rate r(10); //10HZ
while(ros::ok())
{
r.sleep();
//定义好sleep的频率, Rate对象会自动让整个循环以10hz休眠, 即使有任务执行占用了时间
}
6.6.3 Timer
Rate的功能是指定一个频率, 让某些动作按照这个频率来循环执行。 与之类似的是ROS中的
定时器Timer, 它是通过设定回调函数和触发时间来实现某些动作的反复执行, 创建方法和
topic中的subscriber很像。
void callback1(const ros::TimerEvent&)
{
ROS_INFO(“Callback 1 triggered”);
}
void callback2(const ros::TimerEvent&)
{
ROS_INFO(“Callback 2 triggered”);
}
int main(int argc, char **argv)
{
ros::init(argc, argv, “talker”);
ros::NodeHandle n;
ros::Timer timer1 = n.createTimer(ros::Duration(0.1), callback1); //timer1每0.1s触发
一次callback1函数
ros::Timer timer2 = n.createTimer(ros::Duration(1.0), callback2); //timer2每1.0s触发
一次callback2函数
ros::spin(); //千万别忘了spin, 只有spin了才能真正去触发回调函数
return 0;
}
-
启动gazebo中的TurtleBot
roslaunch turtlebot_gazebo turtlebot_world.launch
启动键盘
roslaunch turtlebot_teleop keyboard_teleop.launch启动 rviz
rosrun rviz rviz -
启动画图工具
rosrun plotjuggler PlotJuggler
9 ,启动Python文件
先cd 到Python文件的目录下
chmod +x talker.py
10:服务端与客户端写法:
rossrv list
rossrv show std_srvs/Trigger
bool ServiceCallback(std_srvs::Trigger::Request &req,std_srvs::Trigger::Response &res)
{
res.success=is_can_grab;
return true;
}
ros::ServiceServer service = n.advertiseService(“can_grab”, ServiceCallback);
ros::ServiceClient client = n.serviceClient<std_srvs::Trigger>(“can_grab”);
最后
以上就是包容星星为你收集整理的ros1常用命令的全部内容,希望文章能够帮你解决ros1常用命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复