Navigation

    蓝鲸ROS机器人论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    1. Home
    2. xiaoqiang
    3. Posts
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision
    • Profile
    • Following 0
    • Followers 2
    • Topics 88
    • Posts 312
    • Best 5
    • Groups 1

    Posts made by xiaoqiang

    • 小强ROS机器人教程(12)___ROS显示kinect2代的点云

      小强主页

      本教程适用于2016年12月之后购买的小强用户,在此之前购买的用户请自行根据这篇教程安装kinect2代驱动。

      1启动kienct2代的ROS驱动

      小强底盘输出一个12v电源(DC头,贴有“kinect供电”标签)用于kinect 供电,kinect2代需要插入小车主机蓝色usb3.0接口。
      将小强主机接入显示器和键盘,在小强主机上打开一个命令行终端输入

      roslaunch kinect2_bridge kinect2-xyz.launch
      

      2新开1个命令行终端,启动rviz

      rviz
      

      打开这个rviz配置文件 /home/xiaoqiang/Documents/ros/src/iai_kinect2/kinect2_bridge/launch/rviz.rviz ,点击可下载本文件
      一切正常的话,可以出现类似下图的界面

      0_1481008893212_kinect2.png

      小强主页
      返回目录

      posted in 产品服务
      xiaoqiang
      xiaoqiang
    • RE: 小强ROS机器人教程(8)___kinect1代 ROS驱动测试与安装

      @大水怪
      将 -DBUILD_REDIST_PACKAGE=OFF改成-DBUILD_REDIST_PACKAGE=ON后,可以编译完成,此时音频固件不会自动加载。请下载这份音频固件,放在这个目录下/usr/local/share/libfreenect/,现在启动freenect-micview可以成功开启麦克风。

      posted in 产品服务
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(18)___使用DSO_SLAM进行三维建模

      小强主页

      Direct Sparse Odometry(DSO)是业内很流行的lsd_slam系统作者的学生Jakob Engel开发的,实测性能和精度优于lsd_slam。DSO被作者开源到github,同时还一并开源了DSO在ros系统下的使用代码实例dso_ros.
      本篇教程将演示如何在小强开发平台上安装DSO和dso_ros, 利用小强平台上的摄像头实时运行DSO进行三维建模。点击观看视频。

      1.DSO的安装

      注:因为小强开发平台已经提前安装好了不少DSO需要的依赖包,下文将跳过这些包的安装,请其它开发平台的读者参考github上的完整安装教程进行安装。

      1.a安装依赖包

      sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-dev
      sudo apt-get install libopencv-dev
      
      1.b下载源代码
      cd ~/Documents/
      git clone https://git.bwbot.org/publish/dso
      
      1.c继续配置依赖包
      sudo apt-get install zlib1g-dev
      cd ~/Documents/dso/thirdparty
      tar -zxvf libzip-1.1.1.tar.gz
      cd libzip-1.1.1/
      ./configure
      make
      sudo make install
      sudo cp lib/zipconf.h /usr/local/include/zipconf.h
      
      1.d编译安装
      cd ~/Documents/dso/
      mkdir build 
      cd build 
      cmake .. 
      make -j 2
      

      2.dso_ros的安装

      注:原作者提供的源代码有两个分支,master分支对应rosbuild版,catkin分支对应catkin版。对于现代ROS版本,推荐使用catkin版本,安装使用更方便。但是作者的catkin分支存在代码缺陷,实际无法安装使用,因此下文将安装我们蓝鲸智能修改之后的dso_ros版本。

      cd ~/Documents/ros/src
      git clone https://gitee.com/BluewhaleRobot/dso_ros.git
      cd ..
      export DSO_PATH=/home/xiaoqiang/Documents/dso
      catkin_make #或者用这条命令 catkin_make -DCATKIN_WHITELIST_PACKAGES=""
      

      3.开始使用

      sudo service startup stop # 停止startup服务
      roslaunch startup startup.launch # 启动摄像头等程序
      roslaunch dso_ros dso_ros.launch # 启动dso程序
      

      现在移动摄像头,就能开始对周围环境进行三维建模,移动过程避免急转弯和剧烈运动。

      对于小强用户,可以先遥控小强运动同时用rosbag录制/camera_node/image_raw这个image topic数据,然后重放,这样可以实现大范围的建模。rosbag重放前,需要关闭usb摄像头节点(sudo service startup stop),否则会有图像发布冲突。

      小强主页
      返回目录

      posted in 产品服务
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(7)___使用ps3手柄控制小强移动

      小强主页

      原理:本教程涉及3个包
      ps3joy负责将ps3蓝牙接受信号转换成标准的linux设备(/dev/input/js0)
      joy_node节点负责将上述joy设备数据转换成ros中的joy数据类型
      turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel

      操作步骤

      0.第一次使用手柄,需要将手柄与蓝牙接受器进行绑定,以后可以直接从步骤1开始

      如果手柄和小强同时购买,那么我们已经提前为您将手柄配对可以从步骤1开始使用。
      绑定方法参考原装和国产ps3手柄ros驱动程序中的“快速使用方法步骤1”

      1.启动ps3joy,将ps3手柄与蓝牙接受器配比

      #确保蓝牙接收器已经插入主机usb口
      sudo bash
      rosrun ps3joy ps3joyfake_node.py
      

      正常会出现下面的提示

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py 
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      

      如果提示下列错误
      按下下图中的手柄配对键


      0_1479882160058_14.3.png


      配对成功的话,上面的窗口会输出类似下面的结果

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py 
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      Connection activated
      
      2.启动joy_node和turtlebot_teleop_joy
      roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
      

      正常启动后如下图所示
      0_1479882359779_14.4.png
      ps3fakexiaoqiang_teleop.launch文件内容如下

      <launch>
      
        <node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick">
          <param name="scale_angular" value="0.4"/>
          <param name="scale_linear" value="0.4"/>
          <param name="axis_deadman" value="10"/>
          <param name="axis_linear" value="1"/>
          <param name="axis_angular" value="0"/>
          <param name="axis_enbar" value="12"/>
          <param name="axis_disenbar" value="14"/>
          <remap from="turtlebot_teleop_joystick/cmd_vel" to="/cmd_vel"/>
          <remap from="turtlebot_teleop_joystick/joy" to="/joy"/>
        </node>
      </launch>
      

      上述launch文件中的参数分别对应直线速度最大值(scale_linear)和角速度最大值(scale_angular),油门离合键(axis_deadman)、前进后退轴(axis_linear)、左右转轴(axis_angular),底盘红外使能键(axis_enbar),底盘红外关闭键(axis_disenbar),这些控制按键、摇杆的映射关系。

      3.保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制小车的前后移动和转向(下图中的1+1-摇杆)

      0_1479882825642_ps3_buttons_front.jpg
      0_1479882814189_ps3_axes.jpg
      0_1479882833842_ps3_buttons.jpg

      根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系

      花样玩法

      购买ps3手机支架, 安卓手机装上小强图传app,这样可以实现图传遥控
      0_1489804886570_QQ图片20170318104104.jpg

      小强主页
      返回目录

      posted in 产品服务
      xiaoqiang
      xiaoqiang
    • MIT 博士团造自动驾驶快递小车Robby,能解决“最后一公里”嘛?

      0_1477195257240_1.jpg
                  李瑞

      李瑞是 MIT 的博士毕业生,他的产品是一辆名为 Robby 的自动驾驶快递机器人,做 Robby 的初衷,是源于美国的快递成本非常高。

      “以送餐为例,每送一次需要向客户收 5- 10 美金的快递费(食物本身可能也就十几美金而已)。如果换成快递小车,那么费用可以降低至 1-2 美金,而实际成本比这个还要低。”
      

      Robby 车身装置一个箱子,里面可以摆放各种快递物品。当它到达指定地点,用户可以在手机上按一个按钮,Robby 后背的箱子就能开启,用户取出物品之后,Robby 自己就又开始前往下一家了。
      点击观看动图
      在李瑞给我们演示的视频里,开发人员故意在路中间放了一把椅子,Robby 小车会绕开椅子,规划新的路径。开发人员还会故意踢 Robby 一脚(类似波士顿动力 Big dog 的测试),但Robby 还是“不屈不挠”重新返回路径上。
      点击观看动图
      Robby 最慢行驶速度相当于人的行走速度,最快可以达到人行走速度的 4-5 倍,这相当于是普通自行车的速度。它本质上使用的是自动驾驶技术,最核心的是定位、导航和避障。
      0_1477195548287_2.jpg
      Robby 机器人在今年 3 月始于波士顿,4 月份入选 YC 的暑期项目,5 月底团队搬到硅谷,6-8 月在 YC 孵化。

      虽然还只是手工制作的粗糙原型机,但 Robby 机器人已经在斯坦福大学校园里送货超过 50 次,他们还与 Instacart 合作,展开商业化测试。这么快就投入使用,是因为 Robby 团队十分看重产品在真实场景中的测试。
      本文来源:http://www.leiphone.com/news/201610/q0CieGmVy9UxPmR3.html

      posted in 行业动态
      xiaoqiang
      xiaoqiang
    • Tesla发布autopilot2.0,全面升级硬件,具备全自动驾驶能力

      0_1477193475528_1.png
      特斯拉本周四宣布旗下所有车型(包括Model 3)都已具备完全自动驾驶(Full self-driving )所需的硬件,但尚未激活。具体的更新如下:
      车身四周一共加装了 8 个摄像头,提供 360 度环视功能,最远能够测量 250 米范围内的物体。除了摄像头,特斯拉还加装了 12 个超声波传感器,能够探测到比此前系统远两倍距离范围内的障碍物。特斯拉车前还有一个加强版的前向雷达,能够在雨雪、大雾、扬尘天气下工作以及探测到前方车辆。

      为了处理传感器收集的数据,特斯拉还为车辆配置了一个全新车载电脑,其计算能力是上一代产品的 40 倍,用于处理视觉、声波和雷达软件的运行。这套系统可以同时在各个方位进行探测,覆盖的波长频段相当丰富。

      特斯拉表示,配备这种全新硬件的 Model S 和 Model X 车型已经可以量产,消费者在今天就可以购买。但是在激活新硬件功能之前,特斯拉表示会对此进行数百万英里的路测,等这些功能测试完毕、表现稳定,届时官方会通过 OTA 推送给特斯拉车主。

      本文来源:http://www.leiphone.com/news/201610/T0hLC1zegatYNA0Z.html

      posted in 行业动态
      xiaoqiang
      xiaoqiang
    • 小强ROS机器人教程(22)_操作6自由度机械臂

      小强主页

      6自由度机械臂的资料在这个百度云盘链接里:http://pan.baidu.com/s/1nuBpDaD 请仔细阅读二次开发部分的串口通信协议、虽然下文使用的是usb hid通信方式,但命令格式是一样

      下文将操作6自由度机械臂完成主控板上存储的3组动作。

      控制原理: 小车主机使用usb连接机械臂主控板,用户发送名为robot_arm/cmdstring的topic,这个topic内容为控制命令,最后由robot_arm节点负责将这个topic内容经由usb hid协议发送给机械臂主控板。

      1.运行robot_arm节点

      rosrun robot_arm move.py
      #robot_arm包代码在这里 http://git.bwbot.org/publish/robot_arm
      

      启动正常,机械臂会执行动作0(默认状态),同时命令窗口会显示如下内容

      xiaoqiang@xiaoqiang-desktop:~/Documents/ros$ rosrun robot_arm move.py 
      Opening robot arm device
      Manufacturer: MyUSB_HID
      Product: LOBOT
      Serial No: 8D9823654852
      Run the zero group action
      
      
      

      2.构造robot_arm/cmdstring topic

      robot_arm/cmdstring 这个topic 类型是std_msgs.msg中的String 即字符串。根据上文提供的机械臂二次开发资料,我们可以知道6自由度的控制协议是由一个无符号byte数组表示,因此我们在这里稍加改造,直接将这个数组的hex值变成字符串打包成topic命令。变换方式是采用python的byte array表示方式,将数组中每个元素的hex编码串在一起,然后将其中的0x换成\x。

      例如: [0x55,0x55,0x05,0x06,0x00,0x01,0x00] 这个控制命令数组,转换成robot_arm/cmdstring 内容是,'\x55\x55\x05\x06\x00\x01\x00'
      小技巧:看不懂的话,还可以用python的map函数帮忙转换,找规律。list(map(ord,'\x55\x55\x05\x06\x00\x01\x00'))
          
      

      我们要控制机械臂完成3个动作,这三个字符串内容如下

      '\x55\x55\x05\x06\x00\x01\x00'
      
      '\x55\x55\x05\x06\x01\x01\x00'
      
      '\x55\x55\x05\x06\x02\x01\x00'
      
      找到规律没...
      

      3.发布运动命令

      新开一个命令行终端,因为是演示,所以直接使用rostopic 的pub功能,将上面的字符串命令打包成topic发给robot_arm节点
      动作1: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x00\x01\x00' 
      动作2: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x01\x01\x00' 
      动作3: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x02\x01\x00' 
      

      4.运动结果暂时没有视频,需要自己实际操作,觉得运动不满意的话请参考我们这个舵机运动控制帖子:电机控制与缓动函数

      小强主页
      返回目录

      posted in 产品服务
      xiaoqiang
      xiaoqiang
    • RE: ubuntu14.04升级cmake版本后,ROS catkin_make错误解决办法

      @weijiz 这歪楼能力,知道的也太多了

      posted in 技术交流
      xiaoqiang
      xiaoqiang
    • RE: ubuntu14.04升级cmake版本后,ROS catkin_make错误解决办法

      还有一个偷懒方法是,将build目录下的makefile中的CMAKE_COMMAND 中的cmake路径修改下

      posted in 技术交流
      xiaoqiang
      xiaoqiang
    • 如何简单规避冗余参数对曲面方程拟合的影响

      曲面方程(可以是高维)的参数通常都满足这样一个条件

      参数同时放大一个倍数,曲面方程不变,以平面方程为例:
      A*x+B*y+C*z+D=0
      让A、B 、C 、D同时放大两倍,原方程表示的平面显然不变
      

      用多个点来拟合一个曲面时,因为上述性质,会导致参数空间存在一个稳定的平凡解,用迭代法求解时,算法容易陷入这个无意义的平凡解,因而拟合失败。

      平凡解:所有参数为零
      

      规避这个平凡解的办法是,将平凡解从参数空间中消除,通常的实现方式是修改算法,增加参数限制条件。
      本文要介绍的一个小技巧是:

      直接固定一个参数,因为参数的绝对值没有意义,相对大小才是有意义的,所以可以直接将一个参数固定为1
      

      这个技巧需要注意的地方是:参数有多个,我们需要固定的参数的真实值不能为零(零值没有比值,所以不能用)。在实际运用时,我们虽然不知道参数的真实值(知道了就不求了),但可以确定某个参数肯定不能为零,因此固定参数的选择还是很容易实现的,本方法的可行性也就得到了保障。

      posted in 技术交流
      xiaoqiang
      xiaoqiang
    • ROS运行python脚本报错: No module named srv

      调试一个python脚本时,突然报错

      ImportError: No module named srv under tf2_msgs
      

      机器已经安装了ros jade完整版,在/opt/ros/jade/lib/python2.7/dist-packages/tf2_msgs目录下也有srv目录,应该没问题的。
      google一番,发现有人反应是python包名字问题(http://www.aichengxu.com/view/75748),但tf2_msgs是官方包,自然不存在这个问题。
      回想一下今天对系统的改动,白天升级了一下jade版本的tf2包,但因为bullet依赖问题,升级到一半就放弃了(这个依赖问题可以参考http://answers.ros.org/question/220676/how-to-install-bullet-on-indigo-in-ubuntu/)。
      重新catkin_make 了下ros工作目录,然后仔细翻看了一下ros工作目录的devel目录,发现/home/xiaoqiang/Documents/ros/devel/lib/python2.7/dist-packages目录下竟然还有tf2_msgs文件夹,但里面没有srv目录。
      所以找到问题根源了

      一个ROS python包即使从工作目录删除了,catkin_make命令也不会删除之前残留在devel目录下的文件夹
      rosrun 和 roslaunch 运行节点程序时,优先查找用户工作目录,导致尝试从一个残留文件夹加载运行文件,这就导致了开头的问题
      
      posted in 技术交流
      xiaoqiang
      xiaoqiang
    • 特斯拉发生首宗自动驾驶致死车祸,遭受调查

      北京时间7月1日早间消息,美国高速公路交通安全委员会(NHTSA)周四表示,将对2.5万辆特斯拉Model S车型展开初步调查。调查原因是由于5月7日,在佛罗里达州Williston,一名Model S车主在使用Autopilot自动驾驶模式时发生事故死亡。

      NHTSA表示,事故车辆是2015年款Model S,事故发生时车辆开启了Autopilot自动驾驶模式。该部门将调查“事故发生时驾驶辅助功能的设计和性能”。如果NHTSA认为车辆安全性存在问题,那么将会要求车辆召回。
        初步报告显示,当时在一个十字路口,在这辆特斯拉汽车的前方,一辆重型卡车正在左转。
      0_1467423034883_1.png
      事发时,车辆正处于自动驾驶模式,Model S的摄像头和雷达疑似未能识别出左转弯的蓝色大货车,导致车辆并未启动刹车,全速撞上货车,图中标注红色的特斯拉就从货车底下钻了过去,驾驶员当场死亡。
        对于事故原因,特斯拉表示:“在天空明亮光线的照射之下,Autopilot系统和司机都没有注意到重型卡车白色的侧方,因此没有踩刹车。

      posted in 行业动态
      xiaoqiang
      xiaoqiang
    • 1
    • 2
    • 12
    • 13
    • 14
    • 15
    • 16
    • 16 / 16