当前位置: 首页 > news >正文

浏览器及java读取ros1的topic

// 获取雷达数据

rostopic echo /scan 

(1)法1:

maven  setting依赖修改依赖修改

    <mirror><id>aliyunmaven</id><mirrorOf>*,!rosjava-mvn-repo</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror><mirror><id>nexus</id><mirrorOf>*,!rosjava-mvn-repo</mirrorOf><name>nexus public</name><url>http://192.168.2.220:8081/repository/maven-public</url></mirror><!-- 添加 ROS Java 仓库的镜像配置 --><mirror><id>rosjava-mvn-repo</id><mirrorOf>rosjava-mvn-repo</mirrorOf><name>ROS Java Maven Repository</name><url>https://raw.githubusercontent.com/rosjava/rosjava_mvn_repo/master/</url></mirror></mirrors>

maven依赖添加 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>java_ros</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.ros.rosjava_core</groupId><artifactId>rosjava</artifactId><version>0.3.6</version></dependency><dependency><groupId>org.ros.rosjava_messages</groupId><artifactId>std_msgs</artifactId><version>0.5.8</version></dependency><dependency><groupId>org.ros.rosjava_messages</groupId><artifactId>sensor_msgs</artifactId><version>1.12.7</version></dependency><!-- 添加WebSocket客户端依赖用于连接rosbridge --><dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.5.3</version></dependency></dependencies><repositories><!-- ROS Java 仓库 --><repository><id>rosjava-mvn-repo</id><name>ROS Java Maven Repository</name><url>https://raw.githubusercontent.com/rosjava/rosjava_mvn_repo/master/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>rosjava-mvn-repo</id><name>ROS Java Maven Repository</name><url>https://raw.githubusercontent.com/rosjava/rosjava_mvn_repo/master/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></project>

3.读取topic代码 读取的topic为/scan

package ros;import org.ros.message.MessageListener;
import org.ros.namespace.GraphName;
import org.ros.node.*;
import org.ros.node.topic.Subscriber;
import sensor_msgs.LaserScan;import java.net.URI;
import java.util.List;
/*** 订阅激光扫描数据* 示例1*/
public class LaserScanSubscriber extends AbstractNodeMain {@Overridepublic GraphName getDefaultNodeName() {return GraphName.of("laser_scan_subscriber");}@Overridepublic void onStart(ConnectedNode connectedNode) {// 创建订阅者,订阅/scan话题,消息类型为sensor_msgs/LaserScanSubscriber<LaserScan> subscriber = connectedNode.newSubscriber("/scan", LaserScan._TYPE);// 添加消息监听器subscriber.addMessageListener(new MessageListener<LaserScan>() {@Overridepublic void onNewMessage(LaserScan message) {System.out.println("=====================================");System.out.println("Received laser scan message:");System.out.println("Header: " + message.getHeader());System.out.println("Angle min: " + message.getAngleMin());System.out.println("Angle max: " + message.getAngleMax());System.out.println("Angle increment: " + message.getAngleIncrement());System.out.println("Time increment: " + message.getTimeIncrement());System.out.println("Scan time: " + message.getScanTime());System.out.println("Range min: " + message.getRangeMin());System.out.println("Range max: " + message.getRangeMax());// 打印部分距离数据float[] ranges = message.getRanges();System.out.println("Number of range points: " + ranges.length);System.out.print("First 10 range values: ");for (int i = 0; i < Math.min(10, ranges.length); i++) {System.out.print(ranges[i] + " ");}System.out.println();// 如果有强度数据,也打印部分float[] intensities = message.getIntensities();if (intensities.length > 0) {System.out.print("First 10 intensity values: ");for (int i = 0; i < Math.min(10, intensities.length); i++) {System.out.print(intensities.length + " ");}System.out.println();}}});}public static void main(String[] args) {// 创建节点配置NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic("192.168.209.100", URI.create("http://192.168.209.100:11311"));// 创建节点执行器
//        NodeMainExecutor nodeMainExecutor = NodeMainExecutor.newDefault();NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault();// 创建并运行订阅者节点LaserScanSubscriber subscriberNode = new LaserScanSubscriber();nodeMainExecutor.execute(subscriberNode, nodeConfiguration);System.out.println("LaserScan subscriber started. Listening to /scan topic...");System.out.println("Press Ctrl+C to stop.");}
}

   跳过证书直接安装robridge

   sudo apt-get install ros-<your_ros_distro>-rosbridge-suite

  证书跳过安装

   sudo apt-get -o Acquire::https::Verify-Peer=false install ros-noetic-rosbridge-suite

  //启动ubuntu的

  roslaunch rosbridge_server rosbridge_websocket.launch

//使用rviz_vue显示

https://github.com/BySlin/web_rviz_demo/tree/main

sudo apt install -o Acquire::https::Verify-Peer=false ros-$ROS_DISTRO-foxglove-bridge

roslaunch --screen foxglove_bridge foxglove_bridge.launch port:=8765


http://www.dtcms.com/a/311470.html

相关文章:

  • 重生之我在暑假学习微服务第八天《OpenFeign篇》
  • 暑期算法训练.13
  • cv弹窗,退款确认弹窗
  • 数据结构(12)二叉树
  • 深入 Go 底层原理(六):垃圾回收(GC)
  • 数据资产是什么?
  • MySQL 内置函数
  • npm安装下载慢问题
  • 离线安装docker和docker-compose
  • 【人工智能agent】--服务器部署PaddleX 的 印章文本识别模型
  • JVM 调优中JVM的参数如何起到调优动作?具体案例,G1GC垃圾收集器参数调整建议
  • Junit5+Maven+RestAssured+Allure接口自动化框架
  • VScode对Ubuntu用root账号进行SSH远程连接开发
  • MSQL-聚簇索引与非聚簇索引的比较
  • k8s的pod的YAML问题
  • 公共卫生场景下漏检率↓76%:陌讯动态特征融合算法在口罩识别中的实战解析
  • 7月销售超5万辆,零跑汽车再创单月历史新高
  • 开源列式分布式数据库clickhouse
  • SpringBoot 启动富文本文字更改
  • .NET 中,Process.Responding 属性用于检查进程的用户界面是否正在响应
  • Linux性能监控与调优全攻略
  • SpringCloud微服务
  • 1分钟临时共享空间在线小工具实现
  • 存储成本深度优化:冷热分层与生命周期管理——从视频平台年省200万实践解析智能存储架构
  • Qt 实战教程:使用 QNetworkAccessManager 发送 HTTP POST
  • SM2国密算法的大数运算原理详解
  • (吃饭)质数时间
  • 防御保护综合案例
  • 二分查找:高效搜索有序数组
  • 【论文笔记】Multi-Behavior Graph Neural Networks for Recommender System