MIT License

项目介绍

bo-rc/ViconMAVLink 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 MIT License 许可证,目前获得 28 个 Star、16 次 Fork。

仓库全名
bo-rc/ViconMAVLink
开源许可证
MIT License
Star 数
28
Fork 数
16
未关闭 Issue
1

README 摘要

ViconMAVLink ViconMAVLink is an application to provide indoor positioning for networked robots using Vicon motion capture measurements. It is primarily used in the Intellegent Robotics Lab at the University of Illinois as a tool to simulate indoor GPS for Linux-based autonomous vehicles, such that you can operate autonomous vehicles indoors: A fleet of UAVs flying with simulated GPS: Heterogeneous autonomous…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ViconMAVLink 用什么语言开发?

主要使用 C 编写,采用 MIT License 许可证,目前有 28 个 Star。

ViconMAVLink 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 ViconMAVLink 的源码?

可以直接克隆仓库:git clone https://github.com/bo-rc/ViconMAVLink.git,默认分支为 master;安装与运行步骤见仓库 README。

ViconMAVLink 最近还在维护吗?

仓库最近一次更新为 2019年6月14日,当前有 1 个未关闭 Issue;Star 数为 28,可作为社区活跃度的参考。

关于

Provide indoor positioning for a fleet of MAVLink autonomous vehicles

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
62
价值分
21
活跃状态
活跃

语言占比

C
C++
Python
QMake

贡献者

README

ViconMAVLink is an application to provide indoor positioning for networked robots using Vicon motion capture measurements. It is primarily used in the Intellegent Robotics Lab at the University of Illinois as a tool to simulate indoor GPS for Linux-based autonomous vehicles, such that you can operate autonomous vehicles indoors:

A fleet of UAVs flying with simulated GPS:

Heterogeneous autonomous vehicles controlled via tablet groundcontrol:

Dependencies

ViconMAVLink uses the following libraries:

  • Vicon DataStream SDK: to obtain real-time, high-precision positioning measurement for objects.
  • MAVLink library: to encode/unpack UDP data with the MAVLink protocol.
  • GeographicLib: to convert positioning data between local coordinates and GPS locations.
  • QT5 (core gui widgets network concurrent): to provide a GUI, networking and multithreading.

As long as you have all required libraries added to the Qt project file. This application can be built for multiple platforms in QtCreator.

User’s Guide

You can run this app directly on the Vicon server computer or on any other computers as long as they are in the same network as the Vicon server computer. After you launch the application, the main window will appear. But, the capture objects list is empty because you haven’t connected to Vicon yet.

  • The HostAddress is the IP address of the Vicon server computer.
  • The HostPort usually is 801. This is the port used by Vicon.
  • The North mapping: Vicon uses a Forward-Left-Up coornidates while the LOCAL_POSITION_NED message in MAVLink uses North-East-Down, to make the situation more confusing, GeographicLib uses a East-North-Up coordinates. To convert position data correctly, you need to map your Vicon axis first. Assuming you calibrated Vicon according to the manual, just choose the correct half-axis that corresponds to North then this app will handle the mapping correctly.

To connect to Vicon: Click Menu->Connect Vicon then objects that are captured by Vicon will appear in the Captured Objects List.

To launch a sender for a robot: Choose an object then Click Start a MavLink Sender, the Sender’s window appears. After you start sending data, the Rate slider is still adjustable to change the sending rate on-the-fly.

You may launch multiple senders for a fleet of robots:

Developer’s Guide

The Station object will launch a separate thread to communicate with Vicon. A Writer/Reader lock is used to synchronize data. The Station object is the writer and Sender objects are the readers who fetch raw measurement from the Station. The raw measurement includes position (unit: mm) and a quarternion encapsulated in a mavlink_att_pos_mocap_t object. Since Vicon does not output velocities, the Sender uses a linear Kalman filter to compute a mavlink_local_position_ned_t object with positions and velocities. The GPS_HIL data is then computed with the local position object. The Station and Sender objects and windows use the Model-View-Controller pattern.

评论

暂无评论