szmlb.net

tips for robotics

読書メモ: 没頭力「なんかつまらない」を解決する技術

没頭力「なんかつまらない」を解決する技術 のまとめと感想.没頭力 「なんかつまらない」を解決する技術作者: 吉田尚記,ヤスダスズヒト出版社/メーカー: 太田出版発売日: 2018/02/24メディア: 単行本(ソフトカバー)この商品を含むブログを見る 目次 目次 …

Visual StudioでCMakeを使ってライブラリをインストール

最近, やりたくないけどwindowsで作業せざるをえず, 色々と詰まってしまっていたのでメモしておく. qpOASESをwindowsにインストールする場合を例にして, visual studioでビルドからインストールするまでの手順をメモ.1. CMakeのインストールCMakeを入れる. …

ハッシュ探索 (アルゴリズムクイックリファレンス 5.3)

ハッシュ探索. ハッシュテーブルを作って, そこから探索する. ハッシュテーブルに複数の要素が格納されると衝突が起きるので, 対策が必要. 衝突した要素を同じハッシュ表の空いている部分に入れておく方法がわかりやすい. 衝突が起きてハッシュ表の適切な場…

二分探索 (アルゴリズムクイックリファレンス 5.2)

続いて二分探索. リストの中央値の値と探索したい値を大小比較して, 中央値が大きければ, 中央値より小さい領域を探索. 大きければ, 中央値より大きい領域を探索. この処理を繰り返す. 二分探索実行時にはリストは整列されている必要がある. 計算量 最良 O(1…

逐次探索 (アルゴリズムクイックリファレンス 5.1)

続いて逐次探索. その名の通り, リストの最初から終わりまで一致するものを探索する. 計算量 最良 O(1) 平均 O(n) 最悪 O(n) サンプルコード function sequentialSearch(A, t) for (index, value) in enumerate(A) if value == t return index end end retur…

マージソート (アルゴリズムクイックリファレンス 4.7)

今日はマージソート. マージソートではまず, 全体を大きさが等しい二つの集合に分けて, それぞれをソートする. そして, ソートされた集合をマージする.例のごとく以下のページがわかりやすい. www.codereading.com # # Merge Sort # function mergeSort(A) A…

バケットソート (アルゴリズムクイックリファレンス 4.6)

今日はバケットソート. 本よりこっちの方がわかりやすい. www.codereading.com # # Bucket Sort # function bucketSort(A, min_bucket, max_bucket) buckets = [] for i in min_bucket:max_bucket push!(buckets, nothing) end for i in A buckets[A[i]] = A…

ヒープソート (アルゴリズムクイックリファレンス 4.3)

ヒープソート. トーナメント方式でソートしていくアルゴリズム (とりあえず一言だけ添えとけ感がすごい...けれども, 書かないよりはマシということで, 今年は質より量で定期更新を意識していきたい. 質は量に伴って上がってくると期待して.) # # Heap Sort #…

クイックソート (アルゴリズムクイックリファレンス 4.4)

クイックソート. 任意のピポットを選択して, そのピポットを基準にもとのリストを分割しながらソートしていく, 分割ベースのアルゴリズム. 具体的には, ピポットよりも小さいもので構成されるリストと, 大きいもので構成されるリストに分割する. 分割された…

選択ソート (アルゴリズムクイックリファレンス 4.2)

今日は選択ソート. 昨日の挿入ソートより遅い. 最大値を選んで, リストの右端に持っていく処理を繰り返す. # # Selection Sort # function sortValues(A) #= Choose max value of A[1:i] Insert it to the correct position =# i = length(A) while i > 0 ma…

挿入ソート (アルゴリズムクイックリファレンス 4.1)

アルゴリズムクイックリファレンスを, Juliaの勉強も兼ねてJuliaで実装する.まずは挿入ソート. # # Insert Sort # function sortValues(A) for pos in 2:length(A) insert(A, pos, A[pos]) end end function insert(A, pos, value) i = pos - 1 while i >= 1…

PICOSメモ (整数計画問題)

前回の続き. PICOSで整数計画問題を解く場合のサンプルコードをメモしておく.PuLPを使っている以下の記事を参考にPICOSで解いてみる. qiita.com ナップサック問題 import picos as pic import cplex import scipy as sp import scipy.linalg as sl import nu…

PICOSメモ (半正定値計画問題)

半正定値計画問題(Semi definite programming: SDP)を解きたくてライブラリを探していたところ, この記事にたどり着いた. 記事では, Pythonの最適化モデリングライブラリPICOSを使っていて, 使いやすそうだったので使ってみたくなった. ユーザーフレンドリー…

gitメモ: gitの使い方

gitに関する昔のメモの整理. 用語の整理 ワークツリー : 作業ディレクトリ ステージ領域(インデックス) : ワークツリーからリポジトリに変更結果をコミットする際の中継ポイント HEAD : ブランチの最新のコミット commit push, pull branch checkout merge r…

ubuntuにrt-preemptカーネルを導入する

基本的に以下のサイトを参考にして導入した. RT PREEMPT HOWTO - RTwiki 環境 $lsb_release -r Release 14.04$uname -r 3.13.0-66-generic$cat /proc/cpuinfo | grep "model name" model name : Intel(R) Core(TM) i3-4170 CPU @ 3.70GHz カーネルのダウンロ…

FTDI USBドライバを利用したLinuxでのシリアル通信メモ

Linuxでシリアル通信のプログラムを作成する際のメモ. PythonのpySerialライブラリや, QtのQtSerialPortクラス, ROSではrosserialがあるので需要は少ないかもしれないが, C/C++でFTDIを利用してシリアル通信する必要があったのでメモを残しておく. C/C++での…

qpOASESメモ

二次計画問題を解くためのライブラリ. https://projects.coin-or.org/qpOASES インストール https://projects.coin-or.org/qpOASES/wiki/QpoasesInstallationインストールから使用までの手引きは以下のpdfファイルに記載してある. http://www.coin-or.org/qp…

ODEで弾性関節を作成する

(過去ブログの転載)最近ODEでロボットを作成しては制御する, という作業を繰り返しています. 今回は, RHexライク(とい うかそのもの)をつくってみました. youtu.be脚部が弾性のある素材で構成されていますので, ODEのBoxを弾性関節でつないで実現します.下記…

CMakeメモ

!昔のブログからの加筆転載ROSを触っていて, CMakeで躓いている自分がいたので, まずCMakeを勉強することにした.Learning CMake http://www.wakayama-u.ac.jp/~chen/cmake/cmake.htmlを参考にして一通り勉強した. OpenGL, Qt, OpenCVとリンクしてビルドする…

google chromeのブックマークをevernoteに移す手順

evernoteを使いながらも, google chromeのブックマークも使うという状況が続いていたので, ココを参考に全部evernoteに移植した. chromeからexportしたhtmlをevernoteでimportできる形式に変換してくれるコードが公開されており, そのまま利用すれば良い.手…

論文の整理の仕方について

読んだ論文の数が多くなってくると, フォルダ分けでの管理が非常に効率が悪い. そこで, mendeleyを導入したので, 覚書を残しておく. データはDropboxで保存 データはDropbox上で保存し, クラウド上で同期できるようにする. 例えば, 保存フォルダを Dropbox/m…

ROSでroombaを動かすまでのまとめ

ROSでroombaを動かした手元にあるのはroomba700シリーズで, 環境はubuntu14.04, ROSのバージョンはindigoです. Roombaと通信するための準備 USBシリアル変換コネクタもしくは無線化したい場合はzigbee等を用意します.MZ Platformとフィジカルコンピューティ…

macでwxmaximaを起動したときのコーディングエラーを回避する

ココに解決策がある. Maxima -- GPL CAS based on DOE-MACSYMA / Support Requests / #39 Maxima 5.36.1 on Mac not running$vim ~/.sbclrc下記のように記入 (setf sb-impl::*default-external-format* :utf-8)

RoboticsToolboxメモ

RoboticsToolbox, Machine Vision Toolboxのメモ. Robotics Toolbox, Machine Vision Toolboxとは? ・Peter Corkeさんが開発し公開しているMATLAB用オープンソースライブラリ ・Robotics Toolboxは主にロボットマニピュレータや移動ロボットのための座標変…

python-controlを利用する際に直面したエラー

Windows python-controlは, slycotというライブラリのpythonバインディングを使用するのでインストールが必要. slycotをpip install slycotでインストールしようとすると, エラーが出てインストールできない.Windows 64bit版でコンパイル時に起きるエラーら…

LinxuxでPCIの情報を調べる

以下, 忘備録としてメモ.lspciとlshwが使える. http://open-groove.net/linux/lspci-bus-device-check/$lspci -v でpciの情報は取れる. デバイスドライバの代わりを自前で用意する場合は表示されるIOベースアドレスが重要.suになって$lshwを叩くと, PCIデバ…

ubuntuでリアルタイムLinux

ubuntuをリアルタイムOS化する方法についてのメモ.linuxカーネルのリアルタイムカーネルに関しての歴史は以下のサイトにまとまっている.UbuntuStudio/RealTimeKernel - Community Help Wiki UbuntuStudioTips/Setup/Kernels - Ubuntu Japanese Wikiまとめる…

ubuntu on VMwareで共有フォルダが見えない場合の対策

ubuntu 14.04, カーネルバージョン3.13.xの場合には以下の対処が必要.VMWareFusionでフォルダ共有ができなくなった場合の対処 - Qiitaqiita.comubuntu12.04では下記の対応で対処可能. - VMwareで一時的に色々インストールしてテストしていたのだが, 新しいカ…

CMakeでEigenを使う

CMakeLists.txtの記述 下記サイトに詳細あり. How to use Eigen through CMake? • KDE Community Forums$ mkdir ${PROJECT_SOURCE_DIR}/cmake $ cp /usr/local/eigen3/cmake/FindEigen3.cmake ${PROJECT_SOURCE_DIR}/cmakeCMakeLists.txtを下記のように記述.…

V-REPメモ(ROS連携)

ROSからVREPを利用する時のメモ. 公式のROSチュートリアルに手順が書いてある.ROS tutorial Hydro 準備 ・V-REPのフォルダからROS用の下記パッケージを ~catkin_ws/srcにコピー/ros_bubble_rob /vrep_common /vrep_joy /vrep_plugin・ビルド$ cd ~/catkin_ws…