1
13 January
2018

Underwater and surface robotics leaning and mapping the ocean

I am at the 2018 marine robotics field trials and things are ramping up nicely. There are a wide selection of cool projects from several universities including York, University of South Carolina, University of Minnesota and McGill University.

Our own lab is looking at a nice application of inverse reinforcement learning in the context of following divers (such as a marine biologist) and taking optimal photo documentation (such as regions of the reef of interest). We are also deploying an underwater camera to takes footage using similar motivating principles implement in a deep learning architecture.

We start our day at 8am with a morning briefing regarding the day's experiments an the previous days results, successes and challenges. Then we work at sea until dark and do development work and fine-tuning (or more) until late at night. It's exhilarating, but also exhausting.

We have another 5 or 6 applications being fielded.



















By Gregory Dudek at | Leave a comment |    
10 December
2017

Sometimes Chrome developers are too autocratic for me

Starting with Chrome 64, it seem that Chrome will no longer allow videos to auto-play on web sites that you visit. This is not the first time that Chrome has changed in a manner that does not suit my needs and I wanted to stop it from auto-updating.

Colin Witkamp at Stack Overflow observed that on OS X you can open the Info.plist file inside the app (using "Show Package Contents") and disable auto-update by altering the KSUpdateURL string which provides the URL used to check for updates. Unfortunately, this may stop Chrome from running at all due to code signing (i.e. Chrome can determine that it has been modified). To get around this too, you then need to also delete the folder inside Contents called _CodeSignature.

A cleaner way to disable auto-update is possible using the Mac OS X Terminal to enter
"defaults write com.google.Keystone.Agent checkInterval 0"
which should stop the auto-update process. I chose to do both since I have previously discovered that some applications are very determined to update themselves even when you try and stop them.


By Gregory Dudek at | Leave a comment |    
07 December
2017

Fall is always a busy time in our lab and this year is definitely no exception. We are several different kinds of projects coming to fruition some of them getting ready for testing in the ocean in January. These include some small embedded devices that report data in various ways, as well as some larger oceanborn crafts that will work in collaboration with other vehicles. In addition we have some new theoretical work, a couple of big grants in play, and some exciting you industrial collaborations.


By Gregory Dudek at | Leave a comment |    

Fall is always a busy time in our lab and this year is definitely no exception. We are several different kinds of projects coming to fruition some of them getting ready for testing in the ocean in January. These include some small embedded devices that report data in various ways, as well as some larger oceanborn crafts that will work in collaboration with other vehicles. In addition we have some new theoretical work, a couple of big grants in play, and some exciting you industrial collaborations.


By Gregory Dudek at | Leave a comment |    
09 October
2017

The International Conference on Robots and Systems

The IEEE/RSJ IROS conference recently took place in Vancouver and it was the biggest, and one of the best, meetings in this series of conferences to ever take place. It was also the 30th anniversary of this series of international meetings.
As usual, there were a couple of days of workshops and meetings, and three main days of technical sessions with close to 1000 original research papers being presented.

With ICRA coming to Montreal in 2019 I am paying particular attention to how other robotics meetings are being organized and what the venues are like. I must say that Vancouver really raised the bar to a frightening level (for future organizers) with a beautiful location, an excellent conference banquet, and a generally well-organized meeting overall.

Of course, learning is a key to much of robotics these days. Learning was one of the top keywords associated with published papers this year. Of the five papers from our lab, all five were about the interaction on learning and robotics (one of the papers was actually at ROSCon which preceded IROS).



Big crowd at Dieter's plenary













Although I could only see a small fraction of the talks myself, I got to see some of what the community thought were the best papers by virtue of being on the awards committee. Robot design make something of a resurgence exemplified by the best paper award going to a paper on the design and analysis of the jumping robot Salto-1P (by Haldane, Yim and Fearing). Human robot interaction continues to be a hot topic, a trend I expect to see continue for many years to come. Maja Matric gave a great plenary on her work in this important domain and urged the attendees to focus more deeply on getting robotics to people with profound needs. Among other favorite talks was the plenary by Dieter Fox and a keynote from Oliver Brock, both exceptionally creative and thoughtful souls, and also exceptional speakers -- also great dinner companions and we went out for the best sushi I've had since Tokyo. This was at Sushi Bar Maumi on Bute St. It only seats a total 11 people in groups no larger than 4, and you get to watch the Sushi being prepared at the bar in traditional Japanese style.


Sushi Maumi
Sushi Maumi
(Click to expand)



By Gregory Dudek at | Leave a comment |    

Still working as of 2016

Streaming radio has been a common use of the Internet for many years. At one point, almost all audio streaming had only limited commercial implications. As the use of advertising has become more important as a source of revenue for radio stations, audio streams on the Internet have become entwined with players, typically flash-based, that serve advertising, collect user data, and provide other services. One side effect of this is that it can may it very difficult to debug the set of network connections being used. If, like me, you run a tight firewall, you need to have a sense of where data is coming from, and going, to allow the ports to be opened and closed.

Thus, I needed to figure out how audio streams were being sent from an audio station I wanted to listen to. The audio stream I wanted was being provided from streamtheworld.com and the actual transactions are handled by a rather complex mess of javascript and flash objects. Hers's how to find the streams using wireshark, a fancy network analysis tool.

There are two steps which I elaborate below:
1) Find the call sign for the station. With luck, you can guess this. This will often (but not always) be related to the station's familiar name. For example, for the station Q107 in Toronto the nationally registered call sign is CILQ and the callsign for streamtheworld.com is CILQFM; sensible. On the other hand, the streamtheworld identifier for CBMT CBC Radio One Montreal is CBC_R1_N_MTL_H.

2) Find the playlist (.pls file) or stream ID.

Call sign identification



Firstly, note that wireshark is a very powerful open-source network analyzer (once known as ethereal). It can be downloaded free for most platforms and runs using the X-windows windowing system (that works on Linux [default], Mac [standard but optional] and [with some effort] Windows).


Turn on packet capture in Wireshark and then using your browser on the same computer load the page with the stream you want.

Enter (i.e. specify) a filter as follows (see the picture):
tcp contains "callsign"
that will be used to "listen in" on the data exchange.
This should return an HTTP GET statement of the probable form:
GET /xmlconfig.php?view=xml&callsign=CILQFM&streamid=86
and an associated full URI of the form:
http://playerwebadmin.streamtheworld.com/xmlconfig.php...
It's the callsign argument you want (in this case, CILQFM, for example).


Getting the callsign using wireshark
Getting the callsign using Wireshark (click to expand)






Play list via wireshark



At this point, you can just go to
http://provisioning.streamtheworld.com/pls/CILQFMaac.pls
to get the playlist, which can be used to see what's really happening.
Note the use of the CILQFM call sign in the URL.


... ...
There's more. Read the whole story on "How to find an audio stream from streamtheworld.com"
By Gregory Dudek at | Read (9) or Leave a comment |    
21 August
2017

Watching the eclipse was a real pleasure, as a social event. The level of engagement was a wonder. What a refreshing component of the news cycle.



Partial eclipse with sunspots, from my telescope




By Gregory Dudek at | Leave a comment |    
02 August
2017

The risk that robots (including soft-bots and other AI-based technology) will take over many people's jobs has been getting a lot of play recently. A notably interesting read is Our Automated Future: How long will it be before you lose your job to a robot? in the New Yorker. The fact that jobs change, and in fact are rendered obsolete, by advances in technology is not new: it's been happening for over a century. What's different is that this rate of job displacement is accelerating.

The even bigger issue is that the advent of intelligent robotics seems to foreshadow a much broader-based displacement of jobs and the need to work at all! In a recent survey, most robotics/AI/ML experts think that machines will be better than humans at just about EVERYTHING by 2060. Of course, the idea that people may need to work little, or not at all, was forecast by Keynes almost a century ago. So far, we also find more to want, more to need and more to strive for beyond the bare essentials. The desire to do more, buy more and compete with your neighbour, constantly redefining what is "essential", just keeps people slaving away ... so far. Does this trend ever end?

In the next couple of decades it's pretty certain that the need to work will diminish or vanish for the majority of people to the extent that it is required to subsist. This, of course, assumes that some social mechanism for distributing resources (food, money, goodies) will be put in place. How society chooses to deal with the distribution of wealth is not a matter of robotics or AI, but human compassion, greed, and social norms.

Robots will be driving us around, buying our groceries and preparing our food. Robot will be cleaning the house and doing the dishes. Will they also keep us busy inventing chores for us?

What is especially new is how this "liberation" will impact our day-to-day lives. Will be all sit around watching reading books all day, will we invent new leisure-based jobs and become tennis instructions, competitors or pro esports players and watchers, or will we descend into some new virtual existence? Some of the biggest risks associated with robotics and AI is no that robotics will kill people, but that we will have so much freedom that we will have to reinvent and redefine what we really wan to do with our time and our lives.


By Gregory Dudek at | Leave a comment |    

Earlier entries...