ROSjava探索(更新完结)

rosjava 资料
关于rosjava的东西,我的目标是能够做成一个界面,
https://github.com/rosjava
然后这个地方里面是那些代码的 地方,像界面这种东西看起来应该会方便很多。
https://github.com/rosjava/android_apps
这个人的rosjava的还是不粗的
http://blog.csdn.net/f_season/article/details/9177931

然后在这个ROSWIKI上面已经有android的教程,我就开始看一下。
http://wiki.ros.org/android

这里写图片描述

Ros Robotics Projects 书的代码链接
https://github.com/PacktPublishing/ROS-Robotics-Projects


问题1:rosjava 安装

ROSjava的安装
http://wiki.ros.org/rosjava/Tutorials/hydro/Installation
创建rosjava的pkg

> cd src
> catkin_create_rosjava_pkg rosjava_catkin_package_a
> catkin_create_rosjava_pkg rosjava_catkin_package_b
> cd ..
> catkin_make

但是之出现错误
查证之后发现rosindigo版本rosjava只能从源码安装

> 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
# Make sure we've got all rosdeps and msg packages.
> rosdep update
> rosdep install --from-paths src -i -y
> catkin_make

只要你的包都解压对了,上面的这几条命令实测可以用。

现在只能借助于其他了
我这个电脑上面已经安装了java unity 就差android <我也不知道原来怎么弄的>
由于unity上面有点问题,然后我就从官网上面重新下载了一个,然后接着配置。
http://blog.csdn.net/shiyulf/article/details/55666819


问题2 由于gradle版本问题,导致编译不通过
报错提示:

but when i finally cakin_make
it have some problems:
[100%] Gradling tasks for rosjava_catkin_package_a
Downloading https://services.gradle.org/distributions/gradle-2.2.1-bin.zip
Exception in thread "main" javax.net.ssl.SSLException: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1914)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1872)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1855)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1376)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1353)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1348)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.gradle.wrapper.Download.downloadInternal(Download.java:56)
at org.gradle.wrapper.Download.download(Download.java:42)
at org.gradle.wrapper.Install$1.call(Install.java:57)
at org.gradle.wrapper.Install$1.call(Install.java:44)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:44)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)
Caused by: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
at sun.security.pkcs11.P11Key$P11ECPublicKey.getEncodedInternal(P11Key.java:1024)
at sun.security.pkcs11.P11Key.equals(P11Key.java:158)
at java.util.ArrayList.indexOf(ArrayList.java:298)
at java.util.ArrayList.contains(ArrayList.java:281)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:239)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1459)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:213)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:961)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:897)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1033)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1369)
... 13 more
Caused by: java.security.InvalidKeyException: EC parameters error
at sun.security.ec.ECParameters.getAlgorithmParameters(ECParameters.java:284)
at sun.security.ec.ECPublicKeyImpl.(ECPublicKeyImpl.java:59)
at sun.security.pkcs11.P11Key$P11ECPublicKey.getEncodedInternal(P11Key.java:1021)
... 28 more
Caused by: java.security.NoSuchProviderException: no such provider: SunEC
at sun.security.jca.GetInstance.getService(GetInstance.java:83)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
at java.security.Security.getImpl(Security.java:697)
at java.security.AlgorithmParameters.getInstance(AlgorithmParameters.java:199)
at sun.security.ec.ECParameters.getAlgorithmParameters(ECParameters.java:279)
... 30 more
make[2]: *** [rosjava_catkin_package_a/CMakeFiles/gradle-rosjava_catkin_package_a] Error 1
make[1]: *** [rosjava_catkin_package_a/CMakeFiles/gradle-rosjava_catkin_package_a.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

最后修改gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

不容易啊,编译通过!!
总算会用这个APP了
终于吧这个问题吃透了。这个坑困了我2天其实就是gradle的包下载不下来,然后没有啊办法进行编译,我手工下载了这个报,然后
他的目录在~/.gradle/dists/gradle-2.2.1-all***然后就在这段 乱码里面将原来的来个那个东西删除,然后你下载的那个压缩的包进行替换
参考的解决方案:大家可以类比,总之,我就是这么干的。哈哈
网页链接
https://stackoverflow.com/questions/31405947/how-to-setup-gradle-2-2-1-all-zip-manually

Solution :

1). Delete the C:\Users\username\.gradle folder

2). Download http://downloads.gradle.org/distributions/gradle-2.2.1-all.zip

3). Create a new project in android studio.

4). When this time it stucks at gradle building, Force close the android studio.

5) Now go to C:\Users\username\.gradle\wrapper\dists\gradle-2.2.1-all\c64ydeuardnfqctvr1gm30w53 (the end directory name may be different)

6) Delete gradle-2.2.1-all.zip.lck and other files from this directory.

7) Paste the new downloaded gradle-2.2.1-all.zip here.

8) Run the android studio. :)

这个运行报告确实帮了我我大忙
https://github.com/lazyparser/weloveinterns/blob/master/Reports/xbot_head%E8%BF%90%E8%A1%8C%E6%B5%81%E7%A8%8B.md
这个我网址赶紧存了,当中有所有gradle的版本,使用上面的方法。
https://services.gradle.org/distributions/


问题3 android 无法识别手机设备
首先最最重要的一点,你先要查看,手机是否打开开发者选项。

android studio很好,这样可以让我们集中更多的时间和经历在代码上面而不是在所谓的配置文件上面。
android studio 为点击button添加事件

参看链接:https://jingyan.baidu.com/article/4f7d5712b0bc7d1a201927ca.html

同时也可以将输入IP地址的地方省去,直接连接IP就可以了
参考链接
https://kennedywai.wordpress.com/2016/08/20/ros-android-configuration/

安卓手机root无法识别解决办法
http://www.cnblogs.com/madroid/p/4666401.html
不管怎样,在调试之前,都要先确定,你的手机已经设置了开发者选项。如果没有设置开发者选项的话,上面再如何操作都是不可行的。
而且进行了开发者选项后,设备的mode的数字会变化。


问题4 android studio的安装
android studio的安装参考博客:
http://blog.csdn.net/q1302182594/article/details/52980143
然后只有打开工作空间之后,还是有一定的问题的
然后让这个iDe自己去修复,哈哈,反正我内存够大。
然后看着这个人下面的地方添加了快捷方式
http://blog.csdn.net/lsyz0021/article/details/52215996
注意每行的后面千万不能有空格,不然会失效
基本上这样之后,开发环境已经搞好了。
这个里面是支持中文的,而且支持C++真牛


问题5 调试已经开源的ROS android app
找到一个不错的APP,
app源码的github
https://github.com/ros-autom/RobotCA

但是android的JDK有问题,不可以用JRE,因此要下载JDK8
在android studio当中配置出现的报错:

not jre  need JDK 之类的,报错已经忘记了

下载教程如下:
http://www.cnblogs.com/smiler/p/6939913.html
实用技巧
查看 jdk版本

在终端输入命令:apt-cache search openjdk

查看java版本

java-version

问题5.1
看来无法从apt-get 中安装
添加 PPA 源
  添加 PPA 源的命令为:sudo add-apt-repository ppa:user/ppa-name
  添加好记得要更新一下: sudo apt-get update

删除 PPA 源
  删除 PPA 源的命令格式则为:sudo add-apt-repository -r ppa:user/ppa-name
  然后进入 /etc/apt/sources.list.d 目录,将相应 ppa 源的保存文件删除。
  最后同样更新一下:sudo apt-get update
 
 问题5.2 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existing
报错如下:

    Installation failed with message Failed to establish session.  
    It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.  

    WARNING: Uninstalling will remove the application data!  

    Do you want to uninstall the existing application? 

 http://blog.csdn.net/legend12300/article/details/69864547
 另外需要注意的一点是允许通过USB传输数据。
 http://blog.csdn.net/mr_tony/article/details/53322784
问题5.3 红米手机升级miui8失败,板砖解决方案:
http://www.miui.com/thread-4103239-1-1.html
**问题5.4
目前还在维护的RobotCA**
https://github.com/ros-autom/RobotCA
在这个代码当中,
camera topic :/camera/rgb/image_color/compressed
这个不能直接用他的APP,因为即使你在那个框里面输入的。但是后面真正的话题也没有变,因此你必须从android studio编译通过之后,下载到手机里面。现在配置的JDK8 android studio2.3.3 在 android 4.4.4 api19 和android 5 API23上测试过,都可以通过。过段时间,会吧自己的代码上传到github上面。如果android studio要更新的话一律选择no. 保证在原作者的基础上进行修改。

问题6
安卓版的RVIZ
红米2A增强版 android 4.4.4 API19实际测试可以使用
https://bitbucket.org/zimmrmn3/rviz-for-android/downloads/

问题7 解决ubuntu更新失败的问题
报错:

E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.

解决方法:

http://www.bubuko.com/infodetail-1485244.html

重要更新:
在~/.bashrc文件中添加

export ROS_HOSTNAME=192.168.1.27
export ROS_IP=192.168.1.27
export ROS_MASTER_URI=http://192.168.1.27:11311

不然app无法传输数据。原因位置,但是这么弄之后果然就好了。
可以传输摄像头的数据了
使用自己的摄像头USB摄像头传输数据,参考链接:
http://www.cnblogs.com/CZM-/p/6024600.html


扩展:rosandroid被选参考方案

roslaunch rosbridge_server rosbridge_websocket.launch

然后就能跟这个APP进行通信了

   测试

[code=html]dfdfdfdf[/code]

猜你喜欢

转载自blog.csdn.net/David_Han008/article/details/73864328