What does custom0_subscribe() function do in InvenSense SensorStudio? - sensors

I am writing a custom sensor in InvenSense SensorStudio and noticed the custom0_subscribe() function? How does it work and when would I want to use it?

custom0_subscribe() works like other subscribe functions. It is used when you want to get data from a custom sensor from another custom sensor (eg: custom sensor 1 connected to custom sensor 0).

Related

Subscriber to Joy Topic in ROS2 and converts Joy messages to String message

The purpose of this idea is to control my original robot for tele-operating String-based ROS2 robots with my Xbox Gamepad.
I used to use a keyboard, but I wanted to use a controller for convenience, so I try joy-package.
Until now, I have been using inverse kinematics on ROS2 to calculate the control angle of the serial servo, and sending the calculated Int and Float types as String types to the microcontroller through xrce-micro-dds-Agent for control.
Those reasons are why I cant use teleop-twist-joy package.
I don't want to publish these messages as Twist Messages. I want to send them to a new topic.
What I want to do is as follows.
I want to write a Subscriber to the topic "/joy" and get the data of each Button and each Axes.
Joystick messages to be translated to String messages.
I want to Publish to the topic as (node, std_msgs/msg/String).
so that I can use them in controlling my robot by Xbox Gamepad.
I followed ros document Tutorial : " http://wiki.ros.org/joy/Tutorials/WritingTeleopNode " and I wanted to edit it. But this tutorial shows ROS writing and took information only from the Axis. I want to get from the Buttons too.
Can I have some help or maybe a link to package already done for this type of problems ?
Also, I'm not very good at English, so I'm sorry if my English is difficult to understand or if my sentences are strange.

How to implement AoA/currentLocation with Bluetooth?

I have developed an app where the executing device acts as a beacon. As a scan result, different BLE devices appear with their respective RSSI value.
Is it possible to use these RSSI values to determine the own current position with AoA? I have already read some documentation on this, but I have not found anything like an algorithm.
How can AoA be implemented?
Can someone tell me the necessary steps to do this?
Is triangulation also possible if the referenced 3 points are moving or do you only search for the 3 nearest points??

Record LineOut output directly to file with JSyn

I have built a loopstation in JSyn. It allows you to record and play back samples. By playing multiple samples you can layer up sounds (e.g. one percussion sample, one melody, etc)
JSyn allows me to connect each of the sample players directly to my lineout where it is mixed automatically. But now I would like to record the sound just as the user hears it to a .wav-file. But I am not sure what I should connect the input port of the recorder to.
What is the smartest way to connect the audio output of all samples to the WaveRecorder?
In other words: In the Programmer's Guide there is an example for this but I am not sure how I create the "finalMix" used there.
Rather than using multiple LineOuts, just use one LineOut.
You can mix all of your signals together using a chain of MultiplyAdd units.
http://www.softsynth.com/jsyn/docs/javadocs/com/jsyn/unitgen/MultiplyAdd.html
Or you can use a Mixer unit.
http://www.softsynth.com/jsyn/docs/javadocs/com/jsyn/unitgen/MixerStereoRamped.html
Then connect the mix to your WaveRecorder and to your single LineOut.

Dectect motion with RFID without use of sensors

Does anyone know if the use of only one static active RFID tag are able to detect motion(eg. moving human or objects) by itself without any use of other extra tags or sensors?
You could be able to do it by doing a permanent inventory and getting both the time and the signal strength received from the tag in each session. Both will be an indication that either orientation or distance has changed, but they are not exclusivelly corelated (you could have a change of both factors even if the tag is not moving) so you should do extensive test before settling on the solution.
Since you are talking about an active tag, there are manufacturers that incorporate motion sensors into their tag in order to save battery (tag emits more often when its moving), so you should contact them to see which of them can allow you to gather data from the sensor.
If you are thinking about fixing the tag on a wall and have the tag detect when someone passes by it, I do not know that such a product exist: there are tags that have thermometers or even humidity sensors integrated but not area of interest motion detection, for this you can use a wireless motion sensor.

Search for all iBeacons and not just with specific UUID

Is it possible to search for all iBeacons which are nearby? I know it's possible to search iBeacons by UUID. But i want to find all iBeacons nearby.
An iBeacon is a region, and has as defining property the UUID. Therefore, you can only search for the ones matching a UUID.
After you find one or more with a specific UUID, you can figure out which is closest using the delegate callbacks, where the beacons are stored in an array ordered by distance.
There is great sample code on this and also a pretty detailed WWDC video session: "What's new in Core Location"
iBeacons are higher-level constructs than regular BLE peripherals. From what can be determined from the Apple docs, beacons are tied to their service UUID. i.e., a family of beacons is a "region" and a you go into and out of a region based on the range and visibility of a beacon to YOU, not the other way around. Unfortunately Apple has used the term region, which most of us probably associate with MapKit, so this is adding to the general confusion
Here's the bad news: You can only scan for ProximityUUIDs that you know, there is no "wildcard" proximityUUID. Additionally, CLBeacons don't expose the much in the way of lower level CoreBluetooth guts so if you want to find all beacons that happen to be near you, you'll have to use CoreBluetooth, scan for peripherals, then look though the returned peripheries and query each one them to find beacons. Of course Apple has neither registered (with the Bluetooth SIG) or (yet) published the iBeacon characteristics so, you'll need a BT sniffer to reverse engineer what constitutes an iBeacon from any other BLE device.
each APP would use it's own specific UUID, using the "major" and "minor" integer values to differentiate between beacons.
for example, the UUID would be associated with a chain of shops, major would identify the shop, and minor the aisle, or even a group of products.
scanning for unknown UUID's would not be very useful, as your app would not know what to do with the information.
the UUID is generated once and for all, using the "uuidgen" command in the terminal.
sadly there is no protocol to actually communicate with beacons, hence there is no standard to get the location of a beacon, or any other useful info.
it would have been so much better if we could open a connection to a beacon, usually the closest one, and obtain additional data from it, without having to be on the same WIFI network.
you either have to use bonjour to communicate with the device over WIFI, or use the major and minor id to obtain data from a webservice of some kind.
Unfortunately you cannot at this time search for an arbitrary iBeacon without first knowing the proximityUUID value. I've tried writing directly to COREBluetooth and, although you can discover and connect to transmitting beacons in your area, what you get back is jibberish with no relation to the BLE UUID. So you can't even confirm that the peripheral you have connected to is in fact an iBeacon.
This does not appear to be a limitation of the BLE spec, rather it is a limitation that has been imposed by Apple. It also appears that this limitation does not exist for the Android platform.
Until this gap is closed, Android will have a significant advantage over iOS in this area.
I disagree with previous comments that scanning for UUIDs would be useless. On the contrary, if you knew the beacon UUID, you could create a map of beacon/location/subject in the cloud and use it to navigate (assuming the beacon was fixed) using a web service. You could crowd-source the data so that eventually a very rich database of beacon UUID/location pairs would be available to all who wanted to write location apps. Perhaps this is why Apple is hiding the info; they may be holding this back for their own purposes.
According to Radius Networks (authors of the AltBeacon spec and the android-beacon-library it's not possible to identify a beacon using CoreBluetooth

Resources