rosjava入门

Rosjava是我做ros以来入门最难的,一来因为用的人少,网上相关的资料非常少,能说清楚这个东西到底是个什么东西就更少了;二来因为我对java比c++熟悉很多,总是想看看rosjava的底层。
Rosjava最广泛的应用就是机器人安卓手机控制,在ubuntu中也可以使用,缺陷是ros支持的包太少,能做的功能有限。
1.rosjava环境安装
命令:
sudo apt-get install ros-indigo-rosjava

源码编译安装:
首先要保证ubuntu配置好了java环境
下载依赖
sudo apt-get install ros-indigo-catkin ros-indigo-rospack python-wstool
下载源码并编译
mkdir -p ~/rosjava/src
wstool init -j4 ~/rosjava/src https://raw.githubusercontent.com/rosjava/rosjava/indigo/rosjava.rosinstall
source /opt/ros/indigo/setup.bash
cd ~/rosjava
rosdep update
rosdep install --from-paths src -i -y
catkin_make
Catkin_make是一个非常强大的编译工具,我们不用专门调用javac就可以直接将工程编译,catkin_make中集成了所有ros支持的语言的编译。
编译完成后可以在devel下看到很多jar包,理论上调用这些jar包,就可以完成rosjava程序的编写。
2.创建rosjava包

mkdir -p src
cd src
catkin_create_rosjava_pkg rosjava_catkin_package_a
catkin_create_rosjava_pkg rosjava_catkin_package_b
cd ..
catkin_make
source devel/setup.bash
和c++、python不同,rosjava包创建不需要指定依赖,因为rosjava ros官方的依赖非常少,当然了rosjava程序和普通java程序一样,引入第三方jar包什么的一切正常

3.rosjava工程
Rosjava工程分为两类,一类是生成jar包,一类是生成安卓手机app
1.生成安卓app
cd src/rosjava_catkin_package_a
catkin_create_rosjava_project rosjava_gradle_subproject_a
cd ../..
catkin_make

catkin_create_rosjava_project生成的是一个gradle工程,可以用android打开,进行开发。
有两点需要注意
1.这个gradle工程对应androidStudio里的一个moudle而不是一个工程
2.androidStudio需要android api 11 10 才能正确通过as编译成功

Catkin_make命令执行后,会自动生成apk文件,放在devel下
2.生成jar包
cd src/rosjava_catkin_package_a
catkin_create_rosjava_library_project rosjava_gradle_subproject_b
cd ../..
catkin_make

此方法创建的工程编译完成后在ubuntu上也是可以运行的,需要注意的是rosjava的程序入口不在main,而是通过rosjavaNodeHandle运行,通俗来讲,程序继承ros自带的类,实现特定方法,ros框架找到这个方法,并去运行
4.rosjava写发布者和订阅者
创建rosjava包,并编译
cd src/rosjava_catkin_package_a
catkin_create_rosjava_project my_pub_sub_tutorial
cd ../..
catkin_make

Ros包创建后,src目录下回自动生成实例程序
运行方式1,通过rosrun
source devel/setup.bash
roscore &
rosrun rosjava_catkin_package_a my_pub_sub_tutorial com.github.rosjava.rosjava_catkin_package_a.my_pub_sub_tutorial.Talker
rosrun rosjava_catkin_package_a my_pub_sub_tutorial com.github.rosjava.rosjava_catkin_package_a.my_pub_sub_tutorial.Listener

运行方式2,直接运行脚本
roscore &
cd src/rosjava_catkin_package_a/my_pub_sub_tutorial
cd build/install/my_pub_sub_tutorial/bin
./my_pub_sub_tutorial com.github.rosjava.rosjava_catkin_package_a.my_pub_sub_tutorial.Talker &
./my_pub_sub_tutorial com.github.rosjava.rosjava_catkin_package_a.my_pub_sub_tutorial.Listener

5.rosjava实践,手机app控制机器人运动
实例地址:http://blog.jiutucao.com:9000/upload/2018/07/android_teleop.mp4

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值