rviz无法建图_[ROS项目]无人机仿真与建图

无人机仿真(位置控制)

本次项目所用的仿真环境是开源的Rotors功能包,初次了解无人机的控制,也是摸索小白,希望可以起到抛砖引玉的作用。

1. 安装Rotors软件功能包

 首先需要建立ROS软件包,并下载对应的Rotors的软件功能包:

$ mkdir -p /ROS/rotors_ws/src$ cd ROS/rotors_ws/src$ catkin_init_workspace$ git clone https://github.com/xmy0916/rotors

 之后编译git下来的代码即可:

$ cd ..$ catkin_make$ source devel/setup.sh

2. 运行Rotors的Firefly机器人的launch文件

 Firefly机器人是一个六轴的机器人,带有三个摄像头,从rviz的topic中可以看到有深度、RGB双目摄像头。出于个人喜好,可以对launch文件中的world进行修改,选择不同的运行物理环境,我喜欢沙都没有。所以,用了basic.world来对无人机进行仿真。订阅后的摄像头图像会发现看到了上面螺旋桨的旋转,所以我在mav_with_vi_sensor.gazebo文件中对摄像头的位置进行了微调,为以后的建图以及图像识别的容错率提升打好基础。

850e9ab7223e67757a5d02704926e9a2.png

 在调整好摄像头的角度后,遇到了其他插件无法转换至bask_link上的问题,需要将坐标系换成world坐标系,来完成转换。

3. 控制Firefly

 首先在控制交互上我选用的是通过扫描键盘按下的键值,然后进行对应的控制。所以识别被按下键盘值成为首要解决。

#include #include #include #include #include #include #include #include #include static struct termios initial_settings, new_settings;static int peek_character = -1;void init_keyboard(void);void close_keyboard(void);int kbhit(void);int readch(void); void init_keyboard(){
        tcgetattr(0,&initial_settings);    new_settings = initial_settings;    new_settings.c_lflag |= ICANON;    new_settings.c_lflag |= ECHO;    new_settings.c_lflag |= ISIG;    new_settings.c_cc[VMIN] = 1;    new_settings.c_cc[VTIME] = 0;    tcsetattr(0, TCSANOW, &new_settings);} void close_keyboard(){
        tcsetattr(0, TCSANOW, &initial_settings);} int kbhit(){
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值