All Projects → tgu → RosSwift

tgu / RosSwift

Licence: MIT License
ROS Robotic Operating System - Swift implementation of core client libraries and rosmaster. Based on roscpp.

Programming Languages

swift
15916 projects
Makefile
30231 projects

Projects that are alternatives of or similar to RosSwift

toy code
No description or website provided.
Stars: ✭ 78 (+110.81%)
Mutual labels:  ros
roboteq control
⚙️ Driver for Roboteq devices using ros_control
Stars: ✭ 32 (-13.51%)
Mutual labels:  ros
turtlebot rrt
Rapidly Exploring Random Tree (RRT) global path planning plugin for ROS Kinetic Kame
Stars: ✭ 86 (+132.43%)
Mutual labels:  ros
catbird
Mock server for UI tests
Stars: ✭ 32 (-13.51%)
Mutual labels:  swift-nio
find moving objects
A ROS library that finds moving objects and derives their position and velocity, based on 2D laser scan or 3D point cloud 2 data streams.
Stars: ✭ 23 (-37.84%)
Mutual labels:  ros
grvc-ual
An abstraction layer for unmanned aerial vehicles
Stars: ✭ 35 (-5.41%)
Mutual labels:  ros
pc guidelines
Guidelines for using IvLabs PC. General instructions for maintaining and using any PC/laptop while using Ubuntu for Robotics/DL/RL research.
Stars: ✭ 23 (-37.84%)
Mutual labels:  ros
rmw connextdds
ROS 2 RMW layer for RTI Connext DDS Professional and RTI Connext DDS Micro.
Stars: ✭ 28 (-24.32%)
Mutual labels:  ros
hfsd
This is a ROS package used to detect directions of free space in enclosed areas where sensors fail to get returns
Stars: ✭ 13 (-64.86%)
Mutual labels:  ros
erdos
Dataflow system for building self-driving car and robotics applications.
Stars: ✭ 135 (+264.86%)
Mutual labels:  ros
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (-18.92%)
Mutual labels:  ros
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+181.08%)
Mutual labels:  ros
SASensorProcessing
ROS node to create pointcloud out of stereo images from the KITTI Vision Benchmark Suite
Stars: ✭ 26 (-29.73%)
Mutual labels:  ros
summit xl sim
Packages for the simulation of the Summit XL, Summit XL HL and Summit-X (including X-WAM) robots
Stars: ✭ 32 (-13.51%)
Mutual labels:  ros
awesome-webots
Awesome Webots
Stars: ✭ 46 (+24.32%)
Mutual labels:  ros
ROS
ROS机器人操作系统 学习(写于2020年夏)
Stars: ✭ 102 (+175.68%)
Mutual labels:  ros
isaac ros visual odometry
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.
Stars: ✭ 101 (+172.97%)
Mutual labels:  ros
fmi adapter
Integrating functional mock-up units (FMUs) in ROS nodes
Stars: ✭ 26 (-29.73%)
Mutual labels:  ros
jetson csi cam
A ROS package making it simple to use CSI cameras on the Nvidia Jetson TK1, TX1, or TX2 with ROS.
Stars: ✭ 95 (+156.76%)
Mutual labels:  ros
astuff sensor msgs
A set of messages specific to each sensor supported by AutonomouStuff.
Stars: ✭ 37 (+0%)
Mutual labels:  ros

RosSwift

ROS Robotic Operating System - Swift implementation of core client libraries. Based on roscpp.

RosSwift is a Swift implementation of ROS. It provides a Swift library based on Swift-NIO that enables Swift programmers to interface to ROS. It is tested on OSX and Linux (Raspberry Stretch, Ubuntu) and should also work on all platforms that are supported by Swift-NIO.

There are some unimplemented features, basic publishing, subscription, services and parameters should work.

Compability

Minimum SDK10.14 on OSX, also works on iOS14

Swift 5.3 on Raspberry, tested with Ubuntu 20.10

It can be necessary to allow arbitary loads in the Info.plist file for iOS and macOS

<key>NSAppTransportSecurity</key>
<dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>

Messages

The package include msgbuilder to generate code for custom messages.

Master

The package include roscore that is a swift implementation of the ros master. The master advertises its presense with Bonjour on Apple devices and with Avahi on Linux devices. A client initialization of Ros will search for the master unless the url is specified with remapping ros = Ros(name: "phone", remappings: ["__master":"http://10.0.1.23:11311"]) or with the environment variable ROS_MASTER_URI

For service discovery in iOS14 Client app, add NSBonjourServices to your Info.plist

<key>NSBonjourServices</key>
<array>
  <string>_ros._tcp</string>
</array>

Example

The following code snippet shows how to model a publisher

import Foundation
import RosSwift
import RosTime
import StdMsgs


let ros = Ros(argv: &CommandLine.arguments, name: "talker")
let n = ros.createNode()
guard let chatter_pub = n.advertise(topic: "/chatter", message: String.self) else {
    exit(1)
}

var rate = Rate(frequency: 10.0)

var j : Int32 = 0
while ros.ok {
    chatter_pub.publish(message: "Hello \(j)")
    j += 1
    rate.sleep()
}

The following code snippet shows how to model a simple listener

import RosSwift
import StdMsgs
import msgs

let ros = Ros(argv: &CommandLine.arguments, name: "listener")
let node = ros.createNode()
let imu = node.subscribe(topic: "/imu") { (msg: sensor_msgs.Imu) in
    print("accel: [\(msg.linear_acceleration)]")
}
n.spinThread()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].